unit Cucobra;

interface

uses
  Windows,SysUtils,  Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, DBTables, Mask, ExtCtrls, Buttons, Menus,
  ComCtrls, Tabnotbk,checa,describe,Dialogos,Apertura;

  {
  Windows, Messages, SysUtils,
  Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;


  }
type
  TFormaCuCobra = class(TForm)
    FuenteTablaCucobrar: TDataSource;
    TablaCucobrar: TTable;
    Panel1: TPanel;
    Mensaje: TLabel;
    BotonNo: TSpeedButton;
    Label2: TLabel;
    BotonSi: TBitBtn;
    Panel2: TPanel;
    ScrollBox: TScrollBox;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    EditCLCLI_CC: TDBEdit;
    EditTIMOV_CC: TDBEdit;
    EditNUDOC_CC: TDBEdit;
    EditNUREF_CC: TDBEdit;
    EditIMCUE_CC: TDBEdit;
    EditFEAPL_CC: TDBEdit;
    EditFEVEN_CC: TDBEdit;
    EditNUFAC_CC: TDBEdit;
    Shape1: TShape;
    Panel3: TPanel;
    Bevel20: TBevel;
    Bevel21: TBevel;
    Bevel22: TBevel;
    Panel4: TPanel;
    Label10: TLabel;
    Label11: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Bevel6: TBevel;
    Bevel7: TBevel;
    Bevel8: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure EditNUDOC_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditCLCLI_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Resumen1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure EditTIMOV_CCExit(Sender: TObject);
    procedure EditTIMOV_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BotonSiClick(Sender: TObject);
    procedure EditFEAPL_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditFEVEN_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditCLCLI_CCEnter(Sender: TObject);
    procedure EditNUFAC_CCEnter(Sender: TObject);
    procedure EditNUDOC_CCEnter(Sender: TObject);
    procedure EditTIMOV_CCEnter(Sender: TObject);
    procedure EditNUREF_CCEnter(Sender: TObject);
    procedure EditFEAPL_CCEnter(Sender: TObject);
    procedure EditFEVEN_CCEnter(Sender: TObject);
    procedure EditIMCUE_CCEnter(Sender: TObject);
    procedure EditNUFAC_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditNUREF_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SpeedButton1Click(Sender: TObject);
    procedure BotonNoClick(Sender: TObject);
    procedure Guardar1Click(Sender: TObject);
    procedure EditIMCUE_CCKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Panel4Click(Sender: TObject);
    procedure BotonSiMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BotonNoMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label11MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  FormaCuCobra: TFormaCuCobra;
  cargo,abono:array[1..12] of real;
  cuenta:Real;
  indice:Integer;
implementation

uses conclcxc, CONCLIE, rescxc, concep, cxcd;

{$R *.DFM}




procedure cursor1;
begin
With FormaCuCobra do
begin
if indice > 8 then indice:=1;
if indice < 1 then indice:=1;
case indice of
1:EditCLCLI_CC.SetFocus;
2:EditCLCLI_CC.SetFocus;
3:EditNUDOC_CC.SetFocus;
4:EditTIMOV_CC.SetFocus;
5:EditNUREF_CC.SetFocus;
6:EditFEAPL_CC.SetFocus;
7:EditFEVEN_CC.SetFocus;
8:EditIMCUE_CC.SetFocus;
end;
end;
end;


Procedure saldos;
begin
With FormaCuCobra do
begin
if FormaCxCDetalle.TablaCxC.FieldByName('OPERA_CC').AsString='A' then
cuenta:=FormaCxCDetalle.TablaCxC.FieldByName('IMCUE_CC').AsFloat*(-1)
else
cuenta:=FormaCxCDetalle.TablaCxC.FieldByName('IMCUE_CC').AsFloat;

end;
end;


Procedure actualizacliente;
begin
With FormaCxCDetalle do
begin
TablaClientes.First;
if TablaClientes.FindKey([FormaCucobra.EditCLCLI_CC.Text]) then
begin
TablaClientes.Edit;
TablaClientes.FieldByname('SALDO_C').AsFloat:=TablaClientes.FieldByname('SALDO_C').AsFloat+cuenta;
TablaClientes.Post;
end;
end;
end;

procedure rango;
begin
With FormaCuCobra do
begin
TablaCuCobrar.SetRange([EditCLCLI_CC.Text],[EditCLCLI_CC.Text]);
end;
end;

procedure rutas;
var
  I: Integer;
begin

with FormaCxCDetalle do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TTable  then
       begin
       TTable(Components[I]).DatabaseName:=ruta(8);
       try
//       TTable(Components[I]).Open;
AbreTablaTotal(TTable(Components[I]));
       except
       MuestraMensaje('Ha Ocurrido un Error al Abrir una de las Bases de Datos.');
       end;
       end;
    end;
end;

end;


procedure limpiar;
var
  I: Integer;
begin

with FormaCucobra do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TDBEdit  then
       TDBEdit(Components[I]).Text :='';
     if Components[I] is TEdit  then
       TEdit(Components[I]).Text :='';

  end;
end;

end;


procedure activa;
var
  I: Integer;
begin
with FormaCuCobra do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TDBEdit  then
       TDBEdit(Components[I]).Enabled :=True;
     if Components[I] is TEdit  then
       TEdit(Components[I]).Enabled :=True;
     if Components[I] is TLabel then
       TLabel(Components[I]).Enabled :=True;
end;
end;
end;

procedure desactiva;
var
  I: Integer;
begin
with FormaCuCobra do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TDBEdit then
       TDBEdit(Components[I]).Enabled :=False;
     if Components[I] is TEdit then
       TEdit(Components[I]).Enabled :=False;
     if Components[I] is TLabel then
       TLabel(Components[I]).Enabled :=False;
end;
end;
end;

procedure TFormaCuCobra.FormCreate(Sender: TObject);
begin
  {rutas;
  TablaCucobrar.Open;}

end;

procedure TFormaCuCobra.EditNUDOC_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
{FormaConCxC.TablaConFactura.SetRange([EditCLCLI_CC.Text],[EditCLCLI_CC.Text]);}
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

if Ord(Char(Key))=113 then
begin
{FormaConCxC.Showmodal;
EditNUFAC_CC.Text:=FormaConCxC.TablaConFactura.FieldByName('CLDOC_F').AsString;
EditIMCUE_CC.Text:=FormaConCxC.TablaConFactura.FieldByName('IMTOD_F').AsString;
EditFEAPL_CC.Text:=FormaConCxC.TablaConFactura.FieldByName('FEDOC_F').AsString;
EditFEVEN_CC.Text:=FormaConCxC.TablaConFactura.FieldByName('FEVEN_F').AsString;}
end;
end;

procedure TFormaCuCobra.EditCLCLI_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;
if Ord(Char(Key))=113 then
begin
{if FormaConClientes.Tag=0 then }
FormaConClientes.Tag:=100;
FormaConClientes.Showmodal;
FormaConClientes.Tag:=0;
end;

end;

procedure TFormaCuCobra.Resumen1Click(Sender: TObject);
begin
FormaResumen.Showmodal;
end;

procedure TFormaCuCobra.FormActivate(Sender: TObject);
begin
if FormaCxCDetalle.TablaCxC.State=dsEdit then
begin
saldos;
end;

FormaCuCobra.EditNUDOC_CC.SetFocus;
if FormaCuCobra.Tag=0 then
begin
rutas;

{desactiva;
limpiar;}
end;
FormaCuCobra.Tag:=1;
end;



procedure TFormaCuCobra.EditTIMOV_CCExit(Sender: TObject);
begin
FormaConceptos.TablaConcepto.First;
if FormaConceptos.TablaConcepto.FindKey([EditTIMOV_CC.Text]) then
begin
FormaCxCDetalle.TablaCxC.FieldByName('CONCE_CC').AsString:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
FormaCxCDetalle.TablaCxC.FieldByName('OPERA_CC').AsString:=FormaConceptos.TablaConcepto.FieldByName('TIPOO_MO').AsString;
Label2.Caption:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
end;
end;

procedure TFormaCuCobra.EditTIMOV_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
if FormaConceptos.Tag=0 then
begin
FormaConceptos.Show;
FormaConceptos.Close;
FormaConceptos.Tag:=1;
end;
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

if(Ord(Char(Key))=113) then
begin
FormaConceptos.RejillaConceptos.Tag:=1;
FormaConceptos.ShowModal;
end;

end;

procedure TFormaCuCobra.BotonSiClick(Sender: TObject);
begin
if FormaCxCDetalle.Tag=3 then
begin
{*****borrado de una cuenta*******}
if FormaCxCDetalle.TablaCxC.FieldByName('TIMOV_CC').AsString='1' then
MuestraMensaje('Este Documento no Puede Ser Eliminado Cuenta Principal')
else
FormaCxCDetalle.TablaCxC.Delete
{*********************************}
end
else
begin
if EditTIMOV_CC.Text='1' then
FormaCxCDetalle.TablaCxC.FieldByName('SALDO_CC').AsFloat:=FormaCxCDetalle.TablaCxC.FieldByName('IMCUE_CC').AsFloat;
{******actualizacion de cargos y abonos ***********************}

if FormaConceptos.TablaConcepto.FieldByName('TIPOO_MO').AsString='C' then
FormaCxCDetalle.TablaCxC.FieldByName('CARGO_CC').AsFloat:=FormaCxCDetalle.TablaCxC.FieldByName('IMCUE_CC').AsFloat
else
FormaCxCDetalle.TablaCxC.FieldByName('ABONO_CC').AsFloat:=FormaCxCDetalle.TablaCxC.FieldByName('IMCUE_CC').AsFloat;

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

FormaCxCDetalle.TablaCxC.Post;
end;

Close;

end;

procedure TFormaCuCobra.EditFEAPL_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

if key=114 then
EditFEAPL_CC.Text:=DateToStr(Date);
end;

procedure TFormaCuCobra.EditFEVEN_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

if key=114 then
EditFEVEN_CC.Text:=DateToStr(Date);
end;

procedure TFormaCuCobra.EditCLCLI_CCEnter(Sender: TObject);
begin
indice:=1;
end;

procedure TFormaCuCobra.EditNUFAC_CCEnter(Sender: TObject);
begin
indice:=2;
end;

procedure TFormaCuCobra.EditNUDOC_CCEnter(Sender: TObject);
begin
indice:=3;
end;

procedure TFormaCuCobra.EditTIMOV_CCEnter(Sender: TObject);
begin
indice:=4;
end;

procedure TFormaCuCobra.EditNUREF_CCEnter(Sender: TObject);
begin
indice:=5;
end;

procedure TFormaCuCobra.EditFEAPL_CCEnter(Sender: TObject);
begin
indice:=6;
end;

procedure TFormaCuCobra.EditFEVEN_CCEnter(Sender: TObject);
begin
indice:=7;
end;

procedure TFormaCuCobra.EditIMCUE_CCEnter(Sender: TObject);
begin
indice:=8;
end;

procedure TFormaCuCobra.EditNUFAC_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

end;

procedure TFormaCuCobra.EditNUREF_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=13) or (Key=40) then
begin
indice:=indice+1;
cursor1;
end;
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;

end;

procedure TFormaCuCobra.SpeedButton1Click(Sender: TObject);
begin
Close;
end;

procedure TFormaCuCobra.BotonNoClick(Sender: TObject);
begin
Close;
FormaCxCDetalle.TablaCxC.Cancel;
end;

procedure TFormaCuCobra.Guardar1Click(Sender: TObject);
begin
FormaCxCDetalle.TablaCxC.post;
end;

procedure TFormaCuCobra.EditIMCUE_CCKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=38 then
begin
indice:=indice-1;
cursor1;
end;
end;


procedure TFormaCuCobra.Panel4Click(Sender: TObject);
begin
Close;
end;

procedure TFormaCuCobra.BotonSiMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaCuCobra.Left+BotonSi.Left,FormaCuCobra.Top+BotonSi.Top+BotonSi.Height,30);
end;

procedure TFormaCuCobra.BotonNoMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaCuCobra.Left+BotonNo.Left,FormaCuCobra.Top+BotonNo.Top+BotonNo.Height,31);
end;

procedure TFormaCuCobra.Panel3MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(FormaCuCobra.Handle, WM_SYSCOMMAND, $F012, 0);
end;

procedure TFormaCuCobra.Label11MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(FormaCuCobra.Handle, WM_SYSCOMMAND, $F012, 0);
end;







end.
