unit Empresas;

interface

uses Windows, Messages,SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, Spin,Dialogos,checa, ExtCtrls;

type
  TFormaEmpresas = class(TForm)
    Label1: TLabel;
    Clave: TEdit;
    Empresa: TSpinEdit;
    Rutainicio: TEdit;
    Aceptar: TBitBtn;
    NombreEmpresa: TLabel;
    Label2: TLabel;
    Usuario: TLabel;
    Bevel1: TBevel;
    Bevel2: TBevel;
    procedure FormCreate(Sender: TObject);
    procedure AceptarClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure EmpresaChange(Sender: TObject);
    procedure ClaveKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

  FormaEmpresas: TFormaEmpresas;
  directorioactual:String;

implementation

uses Principa;

//uses Principa;

{$R *.DFM}
{function sonido(frecuencia:integer): Boolean;
  far; external 'SOUNDS';}

procedure GeneraEmpresaSinRegistro;
var
arch:TextFile;
aux:string;
i:integer;
begin
AssignFile(arch,directorioactual+'\SIF2000.SIF');
Rewrite(arch);
Writeln(arch,'Empresa sin Registro...');
CloseFile(arch);
//Registrar(False);

end;


procedure EmpresaConRegistro;
begin

if FileExists(directorioactual+'SIF2000.SIF') then
begin
DeleteFile(directorioactual+'SIF2000.SIF');
end;
//Registrar(True);
end;

procedure checabases;
const
  bases: array[1..29] of String [8]=
    ('Deta','Detacomp','Detaminv','Cliente','Comovinv','Comprasd','Comprase','Concepto','Cotizacd','Cotizaci','Credito','CreditoD','Cucobrar','Cupagar','Devoluc','DevolucD','Facturad','Facturae','Inventar','Movinven','','',
    'Pedido','Pedidod','Poventas','Proveedo','Remisiod','Remision','Vendedor');

    indices: array[1..23] of String [8]=
    ('Cliente','Comovinv','Comprasd','Comprase','Concepto','Cotizacd','Cotizaci','Credito','CreditoD','Cucobrar','Cupagar','Devoluc','DevolucD','Facturad','Facturae','Inventar','Movinven',
    'Pedido','Pedidod','Proveedo','Remisiod','Remision','Vendedor');
    var
    i:integer;
    noexiste:boolean;
    cadena:string;

begin
cadena:='';
 noexiste:=False;
 For i:=1 to 29 do
 begin
 if i<4 then
 begin
 if not FileExists(leeruta+'\'+bases[i]+'.db') then
 begin
  MuestraMensaje('El Archivo '+ bases[i]+' No Existe Revise su Configuración');
  noexiste:=True;
  end;
 end
 else
 begin
 if not FileExists(ruta(8)+'\'+bases[i]+'.dbf') then
 begin
 if bases[i]<>'' then
 cadena:=cadena+'El Archivo '+ bases[i]+'.dbf No Existe Revise su Configuración'+char(13);
// MuestraMensaje('El Archivo '+ bases[i]+'.dbf No Existe Revise su Configuración');
  noexiste:=True;
 end;
 end;
 end;

 For i:=1 to 23 do
 begin
 if not FileExists(ruta(8)+'\'+indices[i]+'.mdx') then
 begin
 cadena:=cadena+'El Archivo '+ indices[i]+'.mdx No Existe Revise su Configuración'+char(13);
// MuestraMensaje('El Archivo '+ indices[i]+'.mdx No Existe Revise su Configuración');
  noexiste:=True;
 end;
 end;

if noexiste then
begin
if cadena<>'' then
begin
MuestraMensaje(cadena);
MuestraMensaje('Uno o Más Archivos no se Encuentran Revise su Carpeta o Directorio de Trabajo');
end;
end;
end;



function ruta(linea:integer):String;
var
arch:TextFile;
aux:string;
i:integer;
begin

if FileExists(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf') then
begin
{MuestraMensaje(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf');}
AssignFile(arch,directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf');

Reset(arch);
for i:=1 to linea do
Readln(arch,aux);
CloseFile(arch);
ruta:=aux;

AssignFile(arch,'c:\sif2000.ini');
ReWrite(arch);
{Writeln(arch,directorioactual);
Writeln(arch,directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf');}
Writeln(arch,directorioactual);
Writeln(arch,directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf');
Writeln(arch,'');
CloseFile(arch);
end
else
MuestraMensaje('La Empresa No Existe'+ '  '+directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf');

end;


procedure checaclave;
begin
with FormaEmpresas do
begin
if acceso(Clave.Text,directorioactual)>=0 then
begin
FormaPrincipal.Enabled:=True;
FormaPrincipal.Caption:='Sistema Integral de Facturación    V 4.3   '+ruta(9);
FormaPrincipal.Usuario.Caption:=IntToStr(acceso(Clave.Text,directorioactual));
FormaEmpresas.Close;
checabases;
Usuario.Caption:=IntToStr(acceso(Clave.Text,directorioactual));
end
else
if Clave.Text=ruta(11) then
begin
FormaPrincipal.Enabled:=True;
FormaPrincipal.Caption:='Sistema Integral de Facturación     V 4.3   '+ruta(9);
FormaEmpresas.Close;
checabases;
end
else
begin
begin
NombreEmpresa.Caption:='EMPRESA SIN REGISTRO';
MuestraMensaje('Clave Incorrecta');
Clave.SelectAll;
Clave.SetFocus;
//GeneraEmpresaSinRegistro;
end;
{Empresa.SetFocus}
end;
end;
end;



procedure TFormaEmpresas.FormCreate(Sender: TObject);
begin
GetDir(0,directorioactual);
{MuestraMensaje(directorioactual);}
RutaInicio.Text:=ruta(8);
if ruta(31)<>'S' then
//Panel1.Color:=actualizacolor(ruta(37));

end;

{procedure TFormaEmpresas.AceptarClick(Sender: TObject);}



procedure TFormaEmpresas.AceptarClick(Sender: TObject);
begin
checaclave;
Clave.Clear; //drr  modific
Clave.SetFocus;



end;

procedure TFormaEmpresas.FormActivate(Sender: TObject);
//var
//F:longbool;

begin
FormaEmpresas.Tag:=1;
if FormaEmpresas.Tag=1 then
begin
if FileExists(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf') then
begin
{if FileExists(directorioactual+'\general.cnf') then
DeleteFile(directorioactual+'\general.cnf');
CopyFile(Pchar(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf'),'c:\Proyecto\Sistema\general.cnf',F);}

RutaInicio.Text:=ruta(8);
NombreEmpresa.Caption:=ruta(9);
if NombreEmpresa.Caption='EMPRESA SIN REGISTRO S.A. DE C.V.' then
GeneraEmpresaSinRegistro
else
EmpresaConRegistro;

end
else
begin
MuestraMensaje('La Empresa No Existe');
RutaInicio.Text:='';
end;


end;
end;

procedure TFormaEmpresas.EmpresaChange(Sender: TObject);
//var
//F:longbool;
begin
if FileExists(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf') then
begin
{if FileExists(directorioactual+'\general.cnf') then
DeleteFile(directorioactual+'\general.cnf');
CopyFile(Pchar(directorioactual+'\Gener'+FormaEmpresas.Empresa.Text+'.cnf'),Pchar(directorioactual+'\general.cnf'),F);}
RutaInicio.Text:=ruta(8);
NombreEmpresa.Caption:=ruta(9);
if NombreEmpresa.Caption='EMPRESA SIN REGISTRO S.A. DE C.V.' then
GeneraEmpresaSinRegistro
else
EmpresaConRegistro;

end
else
begin
begin
NombreEmpresa.Caption:='EMPRESA NO REGISTRADA';
MuestraMensaje('La Empresa No Existe');
end;
RutaInicio.Text:='';
end;

end;

procedure TFormaEmpresas.ClaveKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
begin
{checaclave;}

{if (Date<StrToDateTime('30/11/2000')) then
begin}
if Clave.Text<>'' then
checaclave
else
Clave.SetFocus;
{end
else
MuestraMensaje('Ha Finalizado el Periodo de Prueba...');}

end;
end;

    
procedure TFormaEmpresas.FormShow(Sender: TObject);
begin
Clave.SetFocus;
//Caption:=NombreEmpresa.Caption;
end;

end.
