unit CXP;

interface

uses
  Windows,SysUtils,Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, DBTables, Mask, ExtCtrls, ComCtrls,
  Tabnotbk, Menus, Buttons,checa,describe,dialogos,Apertura;

type
  TFormaCxPagar = class(TForm)
    DataSource1: TDataSource;
    TablaCxP: TTable;
    Panel1: TPanel;
    BotonSi: TSpeedButton;
    BotonNo: TSpeedButton;
    mensaje: TLabel;
    Panel2: TPanel;
    ScrollBox: TScrollBox;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    EditCLPRO_CP: TDBEdit;
    EditTIMOV_CP: TDBEdit;
    EditNUCOM_CP: TDBEdit;
    EditNUDOC_CP: TDBEdit;
    EditNUREF_CP: TDBEdit;
    EditIMCUE_CP: TDBEdit;
    EditFEAPL_CP: TDBEdit;
    EditFEVEN_CP: TDBEdit;
    Label2: TLabel;
    Shape1: TShape;
    Panel3: TPanel;
    Bevel20: TBevel;
    Bevel21: TBevel;
    Bevel22: TBevel;
    Panel4: TPanel;
    Label10: TLabel;
    Label11: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel8: TBevel;
    Bevel7: TBevel;
    Bevel6: TBevel;
    Bevel5: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BotonSiClick(Sender: TObject);
    procedure BotonNoClick(Sender: TObject);
    procedure EditTIMOV_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditNUDOC_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditNUREF_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditIMCUE_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditFEAPL_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditFEVEN_CPKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EditTIMOV_CPEnter(Sender: TObject);
    procedure EditNUDOC_CPEnter(Sender: TObject);
    procedure EditNUREF_CPEnter(Sender: TObject);
    procedure EditIMCUE_CPEnter(Sender: TObject);
    procedure EditFEAPL_CPEnter(Sender: TObject);
    procedure EditFEVEN_CPEnter(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    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);
    procedure EditTIMOV_CPExit(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  FormaCxPagar: TFormaCxPagar;
  cargo,abono:array[1..12] of real;
  indice:integer;

implementation

uses concep, cxpd;

{$R *.DFM}

procedure cursor1;
begin
With FormaCxPagar do
begin
if indice > 6 then indice:=1;
if indice < 1 then indice:=1;
case indice of
1:EditNUDOC_CP.SetFocus;
2:EditTIMOV_CP.SetFocus;
3:EditNUREF_CP.SetFocus;
4:EditFEAPL_CP.SetFocus;
5:EditFEVEN_CP.SetFocus;
6:EditIMCUE_CP.SetFocus;
end;
end;
end;

procedure rango;
begin
With FormaCxPagar do
begin
TablaCxP.SetRange([EditCLPRO_CP.Text],[EditCLPRO_CP.Text]);
end;
end;



procedure rutas;
var
  I: Integer;
begin

with FormaCxPagar do
begin
  for I := 0 to ComponentCount -1 do
    begin
     if Components[I] is TTable  then
       begin
       TTable(Components[I]).DatabaseName:=ruta(8);
       try
       AbreTablaTotal(TTable(Components[I]));
//       TTable(Components[I]).Open;
       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 FormaCxPagar 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 FormaCxPagar 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 FormaCxPagar 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 TFormaCxPagar.FormCreate(Sender: TObject);
begin

{TablaCxP.Open;
rutas;
  Table1.Open;}
end;

procedure TFormaCxPagar.FormActivate(Sender: TObject);
begin

if FormaConceptos.Tag=0 then
begin
FormaConceptos.Show;
FormaConceptos.Close;
end;

if FormaCxPagar.Tag=0 then
begin
rutas;
indice:=1;
end;
FormaCxPagar.Tag:=1;
cursor1;
end;

procedure TFormaCxPagar.BotonSiClick(Sender: TObject);
begin

if FormaCxPDetalle.Tag=3 then
begin
{*****borrado de una cuenta*******}
if FormaCxPDetalle.TablaCxP.FieldByName('TIMOV_CP').AsString='51' then
MuestraMensaje('Este Documento no Puede Ser Eliminado Cuenta Principal')
else
FormaCxPDetalle.TablaCxP.Delete
{*********************************}
end
else
begin
FormaCxPDetalle.TablaCxP.Post;
FormaCxPDetalle.TablaCxP.Edit;

if EditTIMOV_CP.Text='51' then
FormaCxPDetalle.TablaCxP.FieldByName('SALDO_CP').AsFloat:=FormaCxPDetalle.TablaCxP.FieldByName('IMCUE_CP').AsFloat;
if FormaConceptos.TablaConcepto.FieldByName('TIPOO_MO').AsString='C' then
FormaCxPDetalle.TablaCxP.FieldByName('CARGO_CP').AsFloat:=FormaCxPDetalle.TablaCxP.FieldByName('IMCUE_CP').AsFloat
else
FormaCxPDetalle.TablaCxP.FieldByName('ABONO_CP').AsFloat:=FormaCxPDetalle.TablaCxP.FieldByName('IMCUE_CP').AsFloat;
FormaCxPDetalle.TablaCxP.Post;
end;




{TablaCxP.Delete;}
FormaCxPagar.Close;
end;

procedure TFormaCxPagar.BotonNoClick(Sender: TObject);
begin
FormaCxPDetalle.TablaCxP.Delete;
FormaCxPagar.Close;
end;

procedure TFormaCxPagar.EditTIMOV_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
if Ord(Char(Key))=113 then
begin
FormaConceptos.RejillaConceptos.Tag:=2;
FormaConceptos.ShowModal;
FormaCxPDetalle.TablaCxP.FieldByName('CONCE_CP').AsString:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
FormaCxPDetalle.TablaCxP.FieldByName('OPERA_CP').AsString:=FormaConceptos.TablaConcepto.FieldByName('TIPOO_MO').AsString;
Label2.Caption:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
end;
end;

procedure TFormaCxPagar.EditNUDOC_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
end;

procedure TFormaCxPagar.EditNUREF_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
end;

procedure TFormaCxPagar.EditIMCUE_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
end;

procedure TFormaCxPagar.EditFEAPL_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
if Ord(CHar(Key))=114 then EditFEAPL_CP.Text:=DateToStr(date);
end;

procedure TFormaCxPagar.EditFEVEN_CPKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Ord(Char(Key))=13) or (Ord(Char(Key))=40) then
begin
indice:=indice+1;
cursor1;
end;
if Ord(Char(Key))=38 then
begin
indice:=indice-1;
cursor1;
end;
if Ord(CHar(Key))=114 then EditFEVEN_CP.Text:=DateToStr(date);
end;

procedure TFormaCxPagar.EditTIMOV_CPEnter(Sender: TObject);
begin
indice:=2;
end;

procedure TFormaCxPagar.EditNUDOC_CPEnter(Sender: TObject);
begin
indice:=1;
end;

procedure TFormaCxPagar.EditNUREF_CPEnter(Sender: TObject);
begin
indice:=3;
end;

procedure TFormaCxPagar.EditIMCUE_CPEnter(Sender: TObject);
begin
indice:=6;
end;

procedure TFormaCxPagar.EditFEAPL_CPEnter(Sender: TObject);
begin
indice:=4;
end;

procedure TFormaCxPagar.EditFEVEN_CPEnter(Sender: TObject);
begin
indice:=5;
end;

procedure TFormaCxPagar.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
indice:=1;
end;


procedure TFormaCxPagar.Panel4Click(Sender: TObject);
begin
Close;
end;

procedure TFormaCxPagar.BotonSiMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaCxPagar.Left+BotonSi.Left,FormaCxPagar.Top+BotonSi.Top+BotonSi.Height,53);
end;

procedure TFormaCxPagar.BotonNoMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
describir(Button,FormaCxPagar.Left+BotonNo.Left,FormaCxPagar.Top+BotonNo.Top+BotonNo.Height,54);
end;

procedure TFormaCxPagar.Panel3MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(FormaCxPagar.Handle, WM_SYSCOMMAND, $F012, 0);
end;

procedure TFormaCxPagar.Label11MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(FormaCxPagar.Handle, WM_SYSCOMMAND, $F012, 0);
end;


procedure TFormaCxPagar.EditTIMOV_CPExit(Sender: TObject);
begin

FormaConceptos.TablaConcepto.First;
if FormaConceptos.TablaConcepto.FindKey([EditTIMOV_CP.Text]) then
begin
FormaCxPDetalle.TablaCxP.FieldByName('CONCE_CP').AsString:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
FormaCxPDetalle.TablaCxP.FieldByName('OPERA_CP').AsString:=FormaConceptos.TablaConcepto.FieldByName('TIPOO_MO').AsString;
Label2.Caption:=FormaConceptos.TablaConcepto.FieldByName('CONCE_MO').AsString;
end;

end;

end.
