unit ConCobra;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, DBGrids, DBTables, Grids, ExtCtrls, Mask,
 Menus,checa{,concen}, Buttons,conver,graficos,Dialogos,
  ComCtrls,impresor, describe,Apertura;

type
  TFormaConsultaCobranza = class(TForm)
    Detalle: TDBGrid;
    DBNavigator: TDBNavigator;
    Panel1: TPanel;
    DataSource1: TDataSource;
    Panel2: TPanel;
    TablaConsulta: TTable;
    EditCliente: TDBEdit;
    Clave: TLabel;
    Nombre: TLabel;
    Saldo: TLabel;
    TablaClientes: TTable;
    DataSource2: TDataSource;
    Usuario: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    Procesos1: TMenuItem;
    Saldos1: TMenuItem;
    Reportes1: TMenuItem;
    Saldos2: TMenuItem;
    BotonSaldo: TBitBtn;
    BotonBuscar: TSpeedButton;
    BotonSaldos: TSpeedButton;
    ConSaldo1: TMenuItem;
    Todos1: TMenuItem;
    Compacta1: TMenuItem;
    Detallado1: TMenuItem;
    Cargos: TLabel;
    Abonos: TLabel;
    Bevel1: TBevel;
    Salir1: TMenuItem;
    Graficas1: TMenuItem;
    FacturaCargosAbonos1: TMenuItem;
    ImporteySaldo1: TMenuItem;
    SaldoporPeriodo1: TMenuItem;
    SaldosporPeriodoConcentrado1: TMenuItem;
    Ayuda1: TMenuItem;
    ActualizaSaldos21: TMenuItem;
    BarradeEstado: TStatusBar;
    ConsecutivodeFacturasPorcliente1: TMenuItem;
    Consulta1: TMenuItem;
    ImprimeDocumentosDetallados1: TMenuItem;
    BotonSalir: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure EditClienteKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBNavigatorClick(Sender: TObject; Button: TNavigateBtn);
    procedure TablaConsultaFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    procedure DetalleDblClick(Sender: TObject);
    procedure DetalleKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DetalleColEnter(Sender: TObject);
    procedure Saldos1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BotonBuscarClick(Sender: TObject);
    procedure Todos1Click(Sender: TObject);
    procedure ConSaldo1Click(Sender: TObject);
    procedure Compacta1Click(Sender: TObject);
    procedure Detallado1Click(Sender: TObject);
    procedure BotonSaldoClick(Sender: TObject);
    procedure Saldos2Click(Sender: TObject);
    procedure Salir1Click(Sender: TObject);
    procedure ImporteySaldo1Click(Sender: TObject);
    procedure SaldoporPeriodo1Click(Sender: TObject);
    procedure SaldosporPeriodoConcentrado1Click(Sender: TObject);
    procedure ActualizaSaldos21Click(Sender: TObject);
    procedure ConsecutivodeFacturasPorcliente1Click(Sender: TObject);
    procedure Consulta1Click(Sender: TObject);
    procedure ImprimeDocumentosDetallados1Click(Sender: TObject);
    procedure BotonBuscarMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BotonSaldosMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BotonSalirClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  FormaConsultaCobranza: TFormaConsultaCobranza;

implementation

uses cxcd, barras, buscar, formatos,progreso, consulta;

{$R *.DFM}
{function ruta(linea:integer):String;
var
arch:TextFile;
aux,directorioactual:string;
i:integer;
begin
AssignFile(arch,leeempresa);
Reset(arch);
for i:=1 to linea do
Readln(arch,aux);
CloseFile(arch);
ruta:=aux;
end;}

procedure asignatipo;
type
datos=record
archivo:String[60];
descrip:String[125];
end;
var
dat:datos;
faltan:Boolean;
arch,arch2:file of datos;
i:integer;
begin
with FormaConsulta do
begin
{MuestraMensaje(leeruta+'\report\Clientes.for');}
AssignFile(arch,ruta(8)+'\report\Cxc.for');
Reset(arch);
Archivo.Items.Clear;
Descripcion.Clear;
faltan:=True;
for i:=0 to FileSize(arch)-1 do
begin
Read(arch,dat);
if FileExists(Dat.archivo) then
Archivo.Items.Append(Dat.archivo)
else
faltan:=False;
end;
CloseFile(arch);


if faltan=False then
begin
AssignFile(arch,ruta(8)+'\report\Cxc.for');
Reset(arch);
AssignFile(arch2,ruta(8)+'\report\Cxc2.for');
Rewrite(arch2);

for i:=0 to FileSize(arch)-1 do
begin
Read(arch,dat);
if FileExists(Dat.archivo) then
write(arch2,dat);
end;
CloseFile(arch);
CloseFile(arch2);
{******************}
AssignFile(arch,ruta(8)+'\report\Cxc.for');
Rewrite(arch);
AssignFile(arch2,ruta(8)+'\report\Cxc2.for');
Reset(arch2);

for i:=0 to FileSize(arch2)-1 do
begin
Read(arch2,dat);
if FileExists(Dat.archivo) then
write(arch,dat);
end;
CloseFile(arch);
CloseFile(arch2);
end;


Archivo.Text:=Archivo.Items[0];
Descripcion.lines.Add(Dat.Descrip);

ReporteDe.Caption:='Reporte de Cuentas Por Cobrar';
Archi.Caption:='Cxc.for';
end;

end;



procedure saldos(inicio,final:String);
var
abono,cargo:Real;
begin
with FormaConsultaCobranza do
begin
TablaClientes.First;
While not TablaClientes.Eof do
begin
TablaConsulta.Filtered:=False;
Nombre.Caption:='Nombre  '+TablaClientes.FieldByName('NOMBR_C').AsString;
if (EditCliente.Text<>'')and(EditCliente.Text<>'') then
TablaConsulta.SetRange([EditCliente.Text],[EditCliente.Text]);
TablaConsulta.Filtered:=True;
cargo:=0;
abono:=0;
Tablaconsulta.First;
while not TablaConsulta.EOF do
begin
if (inicio<>'')and(final<>'') then
begin
if (TablaConsulta.FieldByName('FEAPL_CC').AsDateTime>=StrToDateTime(inicio))and(TablaConsulta.FieldByName('FEAPL_CC').AsDateTime<=StrToDatetime(final)) then
begin
cargo:=cargo+TablaConsulta.FieldByName('IMCUE_CC').AsFloat;
abono:=abono+(TablaConsulta.FieldByName('IMCUE_CC').AsFloat-TablaConsulta.FieldByName('SALDO_CC').AsFloat);
end;
end
else
begin
cargo:=cargo+TablaConsulta.FieldByName('IMCUE_CC').AsFloat;
abono:=abono+(TablaConsulta.FieldByName('IMCUE_CC').AsFloat-TablaConsulta.FieldByName('SALDO_CC').AsFloat);
end;
Tablaconsulta.Next;
end;

TablaClientes.Edit;
TablaClientes.FieldByName('CARGO_C').AsFloat:=cargo;
TablaClientes.FieldByName('ABONO_C').AsFloat:=abono;
TablaClientes.FieldByName('SALDO_C').AsFloat:=cargo-abono;
TablaClientes.Post;
TablaClientes.Next;
end;
end;

end;
{**************************}
procedure saldossinfiltro(inicio,final:String);
var
abono,cargo:Real;
begin
with FormaConsultaCobranza do
begin
TablaClientes.First;
TablaConsulta.Filtered:=False;
While not TablaClientes.Eof do
begin
{TablaConsulta.Filtered:=False;}
Nombre.Caption:='Nombre  '+TablaClientes.FieldByName('NOMBR_C').AsString;
if (EditCliente.Text<>'')and(EditCliente.Text<>'') then
TablaConsulta.SetRange([EditCliente.Text],[EditCliente.Text]);
{TablaConsulta.Filtered:=True;}

cargo:=0;
abono:=0;
Tablaconsulta.First;
while not TablaConsulta.EOF do
begin
if (TablaConsulta.FieldByName('TIMOV_CC').AsString='1')or
(TablaConsulta.FieldByName('TIMOV_CC').AsString='2') then
begin
if (inicio<>'')and(final<>'') then
begin
if (TablaConsulta.FieldByName('FEAPL_CC').AsDateTime>=StrToDateTime(inicio))and(TablaConsulta.FieldByName('FEAPL_CC').AsDateTime<=StrToDatetime(final)) then
begin
cargo:=cargo+TablaConsulta.FieldByName('IMCUE_CC').AsFloat;
abono:=abono+(TablaConsulta.FieldByName('IMCUE_CC').AsFloat-TablaConsulta.FieldByName('SALDO_CC').AsFloat);
end;
end
else
begin
cargo:=cargo+TablaConsulta.FieldByName('IMCUE_CC').AsFloat;
abono:=abono+(TablaConsulta.FieldByName('IMCUE_CC').AsFloat-TablaConsulta.FieldByName('SALDO_CC').AsFloat);
end;
end;
Tablaconsulta.Next;
end;

TablaClientes.Edit;
TablaClientes.FieldByName('CARGO_C').AsFloat:=cargo;
TablaClientes.FieldByName('ABONO_C').AsFloat:=abono;
TablaClientes.FieldByName('SALDO_C').AsFloat:=cargo-abono;
TablaClientes.Post;
TablaClientes.Next;
end;
end;

end;



{**************************}


procedure rango;
var
cargo,abono:Currency;
begin
With FormaConsultaCobranza do
begin
{*******}
Refresh;
TablaConsulta.Filtered:=False;
Nombre.Caption:='Nombre  '+TablaClientes.FieldByName('NOMBR_C').AsString;
TablaConsulta.SetRange([EditCliente.Text],[EditCliente.Text]);
TablaConsulta.Filtered:=True;
{*****}
cargo:=0;
abono:=0;

Tablaconsulta.First;
while not TablaConsulta.EOF do
begin
cargo:=cargo+TablaConsulta.FieldByName('IMCUE_CC').AsFloat;
abono:=abono+(TablaConsulta.FieldByName('IMCUE_CC').AsFloat-TablaConsulta.FieldByName('SALDO_CC').AsFloat);
Tablaconsulta.Next;
end;
Cargos.Caption:='Cargos :   '+convierte('###,###,##0.00',CurrToStr(cargo),'$');
Abonos.Caption:='Abonos : - '+convierte('###,###,##0.00',CurrToStr(abono),'$');
cargo:=cargo-abono;
Saldo.Caption:='Saldo  :   '+convierte('###,###,##0.00',CurrToStr(cargo),'$');
{******}

end;
end;

procedure rutas;
var
  I: Integer;
begin

with FormaConsultaCobranza do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TTable  then
     begin
       TTable(Components[I]).DatabaseName:=ruta(8);
//       TTable(Components[I]).Open;
AbreTablaTotal(TTable(Components[I]));
     end;
    end;
end;

end;



procedure TFormaConsultaCobranza.FormCreate(Sender: TObject);
begin
{  TablaConsulta.Open;
  TablaClientes.Open;}
end;

procedure TFormaConsultaCobranza.EditClienteKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if key=13 then
begin
TablaConsulta.Filtered:=False;
if TablaClientes.FindKey([EditCliente.Text])then
Nombre.Caption:='Nombre  '+TablaClientes.FieldByName('NOMBR_C').AsString;
TablaConsulta.SetRange([EditCliente.Text],[EditCliente.Text]);
TablaConsulta.Filtered:=True;
end;
end;

procedure TFormaConsultaCobranza.DBNavigatorClick(Sender: TObject;
  Button: TNavigateBtn);
begin
rango;
end;

procedure TFormaConsultaCobranza.TablaConsultaFilterRecord(
  DataSet: TDataSet; var Accept: Boolean);
begin
Accept:=((DataSet['TIMOV_CC']='1')or(DataSet['TIMOV_CC']='2'));
end;

procedure TFormaConsultaCobranza.DetalleDblClick(Sender: TObject);
begin
{if Detalle.SelectedIndex=0 then
begin}
FormaCxCDetalle.Factura.Tag:=1;
FormaCxCDetalle.ShowModal;
TablaConsulta.Edit;
TablaConsulta.UpdateRecord;
TablaConsulta.Post;
{end;}
rango;

end;

procedure TFormaConsultaCobranza.DetalleKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
if Key=13 then
begin
{if Detalle.SelectedIndex=0 then
begin}
FormaCxCDetalle.Factura.Text:=TablaConsulta.FieldByName('NUFAC_CC').AsString;
FormaCxCDetalle.ShowModal;
TablaConsulta.Edit;
TablaConsulta.UpdateRecord;
TablaConsulta.Post;
FormaCxCDetalle.Factura.Text:=TablaConsulta.FieldByName('NUFAC_CC').AsString;
{end;}
rango;
end;

end;

procedure TFormaConsultaCobranza.DetalleColEnter(Sender: TObject);
begin
if TablaConsulta.FieldByName('SALDO_CC').AsFloat<0 then
Detalle.Columns[4].Font.Color:=clRed
else
Detalle.Columns[4].Font.Color:=clBlack;
end;

procedure TFormaConsultaCobranza.Saldos1Click(Sender: TObject);
begin
saldos('','');
Concentrar(TablaClientes,'','','f','f','f','CLCLI_C','NOMBR_C','CARGO_C','ABONO_C','SALDO_C','','','','','','','X','','D');
FormaBarras.ShowModal;

end;

procedure TFormaConsultaCobranza.FormActivate(Sender: TObject);
begin
Refresh;
if FormaConsultaCobranza.Tag=0 then
begin
rutas;
rango;
end;
FormaConsultaCobranza.Tag:=1;
end;


procedure TFormaConsultaCobranza.BotonBuscarClick(Sender: TObject);
begin
FormaBusqueda:=TFormaBusqueda.Create(Application);
FormaBusqueda.ShowModal;
TablaClientes.FindNearest([FormaBusqueda.CajaBuscar.Text]);
rango;
FormaBusqueda.Free;
end;

procedure TFormaConsultaCobranza.Todos1Click(Sender: TObject);
var
desde:string;
begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
saldos(DateToStr(FormaFormatos.Inicial.Date),DateToStr(FormaFormatos.Final.Date));
Concentrar(TablaClientes,'','','f','f','f','CLCLI_C','NOMBR_C','CARGO_C','ABONO_C','SALDO_C','','','','','','','X','','D');
poneetiquetas('Cliente','Nombre','Cargos','Abonos','Saldo','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica de Clientes','Clave del Cliente','Total por Documento',3);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte de Clientes';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
end;
FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.ConSaldo1Click(Sender: TObject);
var
desde:string;
begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
saldos(DateToStr(FormaFormatos.Inicial.Date),DateToStr(FormaFormatos.Final.Date));
Concentrar(TablaClientes,FormaFormatos.De.Text,FormaFormatos.Hasta.Text,'f','f','f','CLCLI_C','NOMBR_C','CARGO_C','ABONO_C','SALDO_C','','','','','','SALDO_C','!','0','D');
poneetiquetas('Cliente','Nombre','Cargos','Abonos','Saldo','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica de Clientes con Saldo','Clave del Cliente','Total por Documento',3);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte de Clientes con Saldo';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
end;
FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.Compacta1Click(Sender: TObject);
begin
TablaConsulta.First;
While not TablaConsulta.Eof do
begin
if TablaConsulta.FieldByName('SALDO_CC').AsFloat=0 then
TablaConsulta.Delete;
TablaConsulta.Next;
end;

end;

procedure TFormaConsultaCobranza.Detallado1Click(Sender: TObject);
var
desde:string;
begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

Tablaconsulta.CancelRange;
FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
Concentrar(TablaConsulta,Formaformatos.De.Text,FormaFormatos.Hasta.Text,'FEAPL_CC',DateToStr(FormaFormatos.Inicial.Date),DateToStr(FormaFormatos.Final.Date),'CLCLI_CC','NOMBR_CC','IMCUE_CC','SALDO_CC','','','','','','','','X','','D');
poneetiquetas('Cliente','Nombre','Importe','Saldo','','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica de Clientes Detallados','Clave del Cliente','Total por Documento',2);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
//FormaBarras.Caption:='Reporte de Clientes Detallado';

FormaBarras.Tag:=0;
end;

rango;
FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.BotonSaldoClick(Sender: TObject);
begin
FormaCxCDetalle.Factura.Tag:=1;
FormaCxCDetalle.ShowModal;
TablaConsulta.Edit;
TablaConsulta.UpdateRecord;
TablaConsulta.Post;
rango;
end;

procedure TFormaConsultaCobranza.Saldos2Click(Sender: TObject);
var
desde:string;

begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

TablaConsulta.CancelRange;
TablaConsulta.IndexName:='ICUECOB';

FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
Concentrar(TablaConsulta,Formaformatos.De.Text,FormaFormatos.Hasta.Text,'f','f','f','NUFAC_CC','NOMBR_CC','IMCUE_CC','SALDO_CC','','','','','','','TIMOV_CC','=','1','D');
poneetiquetas('Num. Factura','Nombre','Importe','Saldo','','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica Consecutiva de Facturas Detallado','Número de Documento','Total por Documento',1);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte Consecutivo de Facturas Detallado';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
FormaBarras.Tag:=0;
end;
FormaFormatos.Tag:=0;
TablaConsulta.IndexName:='CLCLI_CC';
rango;

FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.Salir1Click(Sender: TObject);
begin
Close;

end;

procedure TFormaConsultaCobranza.ImporteySaldo1Click(Sender: TObject);
begin
TablaConsulta.CancelRange;
graficar('NUFAC_CC','IMCUE_CC','SALDO_CC','',TablaConsulta);
FormaBarras.BotonGrafica.Tag:=1;
FormaBarras.ShowModal;
FormaBarras.BotonGrafica.Tag:=0;
rango;

end;

procedure TFormaConsultaCobranza.SaldoporPeriodo1Click(Sender: TObject);
var
desde:string;

begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

Tablaconsulta.CancelRange;
FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
{saldos(Formaformatos.Inicial.Text,Formaformatos.Final.Text);}
Concentrar(TablaConsulta,FormaFormatos.De.Text,FormaFormatos.Hasta.Text,'FEVEN_CC',DateToStr(FormaFormatos.Inicial.Date),DateToStr(FormaFormatos.Final.Date),'CLCLI_CC','NOMBR_CC','IMCUE_CC','SALDO_CC','','','','','','','','X','','D');
poneetiquetas('Cliente','Nombre','Importe','Saldo','','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica de Cobranza por Periodo Detallado','Clave del Cliente','Total por Documento',2);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte de Cobranza por Periodo Detallado';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
end;

rango;

FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.SaldosporPeriodoConcentrado1Click(

  Sender: TObject);
  var
desde:string;

begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

TablaConsulta.CancelRange;
FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
{saldos(Formaformatos.Inicial.Text,Formaformatos.Final.Text);}
Concentrar(TablaConsulta,FormaFormatos.De.Text,FormaFormatos.Hasta.Text,'FEVEN_CC',DateToStr(FormaFormatos.Inicial.Date),DateToStr(FormaFormatos.Final.Date),'CLCLI_CC','NOMBR_CC','IMCUE_CC','SALDO_CC','','','','','','','','X','','C');
poneetiquetas('Cliente','nombre','Importe','Saldo','','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Grafica de Cobranza por Periodo Concentrado ','Clave del Cliente','Total por Documento',2);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte de Cobranza por Periodo Concentrado';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
end;

rango;

FormaFormatos.Free;
FormaBarras.Free;

end;


procedure TFormaConsultaCobranza.ActualizaSaldos21Click(Sender: TObject);
begin
saldossinfiltro('','');
Concentrar(TablaClientes,'','','f','f','f','CLCLI_C','NOMBR_C','CARGO_C','ABONO_C','SALDO_C','','','','','','','X','','D');
FormaBarras.ShowModal;

end;




procedure TFormaConsultaCobranza.ConsecutivodeFacturasPorcliente1Click(
  Sender: TObject);
  var
desde:string;

begin
FormaFormatos:=TFormaFormatos.Create(Application);
FormaBarras:=TFormaBarras.Create(Application);

TablaConsulta.CancelRange;
FormaFormatos.Rangos.Visible:=True;
FormaFormatos.Formatos.Visible:=False;
activacondiciones(true,true,False,False,False,true,true,true,true,'cxc.cmp');
FormaFormatos.ShowModal;
if FormaFormatos.Tag=1 then
begin
condiciones(FormaFormatos.C1.Caption,tipooperador(FormaFormatos.Operador1.Text),FormaFormatos.Valor1.Text,FormaFormatos.T1.Caption,FormaFormatos.C2.Caption,tipooperador(FormaFormatos.Operador2.Text),FormaFormatos.Valor2.Text,FormaFormatos.T2.Caption,FormaFormatos.C3.Caption,tipooperador(FormaFormatos.Operador3.Text),FormaFormatos.Valor3.Text,FormaFormatos.T3.Caption,'Y');
Concentrar(TablaConsulta,Formaformatos.De.Text,FormaFormatos.Hasta.Text,'f','f','f','NUFAC_CC','NOMBR_CC','IMCUE_CC','SALDO_CC','','','','','','','','X','','D');
poneetiquetas('Num. Factura','Nombre','Importe','Saldo','','','','','','','');
Poneanchos(20,20,20,20,20,20,20,20,20,20,0);
parametrosgrafica('Gráfica Consecutivo de Facturas por Cliente','Número de Documento','Total por Documento',2);
FormaBarras.Tag:=1;
FormaBarras.Panel2.Tag:=0;
FormaBarras.botonGrafica.Tag:=2;
FormaBarras.Concentrado.Clear;
//FormaBarras.Caption:='Reporte Consecutivo de Facturas por Cliente';
//******pone el titulo
 with Sender as TMenuItem do
  begin
  desde:=Caption;
  end;
FormaBarras.Caption:=AgregaTitulo2('Reporte de '+desde,FormaFormatos.Titulo.Text);
//******termina pone el titulo

FormaBarras.ShowModal;
FormaBarras.Tag:=0;
end;
FormaFormatos.Tag:=0;
rango;

FormaFormatos.Free;
FormaBarras.Free;

end;

procedure TFormaConsultaCobranza.Consulta1Click(Sender: TObject);
begin
FormaConsulta.TablaConsulta.DataBaseName:=ruta(8);
FormaConsulta.TablaConsulta.IndexName:='CLCLI_CC';
FormaConsulta.TablaConsulta.TableName:='Cucobrar.DBF';

FormaConsulta.TablaConsulta.Open;
FormaConsulta.TablaConsulta.First;
//FormaConsulta.De.Text:=FormaConsulta.TablaConsulta.Fields[0].AsString;
FormaConsulta.TablaConsulta.Last;
//FormaConsulta.Hasta.Text:=FormaConsulta.TablaConsulta.Fields[0].AsString;
FormaConsulta.TablaConsulta.First;

FormaConsulta.RutaCampos.Text:=leeruta+'\consulta\cxc.cmp';
FormaConsulta.TipoVista.Text:=leeruta+'\consulta\ctaxc.vis';
FormaConsulta.Destino.Text:=leeruta+'\tempo\repcxc.rep';
FormaConsulta.NumCampo.Caption:='0';
asignatipo;
leearchivocampos('cucobrar.dbf','');
formaConsulta.ShowModal;

end;

procedure TFormaConsultaCobranza.ImprimeDocumentosDetallados1Click(
  Sender: TObject);
var
uno,dos:integer;
begin
if ImpresoraLista then
begin
TablaConsulta.First;
iniciaimpresora('Reporte de Cuentas por Cobrar Detallado al Día '+DateToStr(Date),Nombre.Caption,2);
FormaCxCDetalle.Show;
while not Tablaconsulta.Eof do
begin
uno:=TablaConsulta.FieldByName('NUFAC_CC').AsInteger;
rangoimprimecuentaxcobrar(uno,dos);
TablaConsulta.Next;
end;
finalizaimpresora(Cargos.Caption,Abonos.Caption,Saldo.Caption,'s');
FormaCxCDetalle.Close;
end
else
MuestraMensaje('La Impresora No Se Encuentra Lista...');
end;

procedure TFormaConsultaCobranza.BotonBuscarMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaConsultaCobranza.Left+BotonBuscar.Left,FormaConsultaCobranza.Top+BotonBuscar.Top+BotonBuscar.Height,24);
end;

procedure TFormaConsultaCobranza.BotonSaldosMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaConsultaCobranza.Left+BotonSaldos.Left,FormaConsultaCobranza.Top+BotonSaldos.Top+BotonSaldos.Height,25);
end;

procedure TFormaConsultaCobranza.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Salir1.Tag:=1000;
end;


procedure TFormaConsultaCobranza.BotonSalirClick(Sender: TObject);
begin
close;
end;

end.
