Ver Mensaje Individual
  #5  
Antiguo 14-07-2004
chele chele is offline
Miembro
 
Registrado: feb 2004
Posts: 83
Reputación: 21
chele Va por buen camino
Gracias por ayudar, aqui os pongo el codigo a ver si veis el error ...

Código:
 procedure TfrmGenFac1.BitBtn1Click(Sender: TObject);
var
f : textfile;
fiva : textfile;
cadenaSQL, vdata2, prova, vsAux, vLinia: string;
qry, qry2, qryProva: TIBQuery;
comptador, vcuentacontable, vfecha, vhora, vRazon, vRazon2: string;
vIVA, vBASE, vImpext, vraux : real;
vFPDeposito : boolean;
numApunt, numApuntDiari : integer;

begin
try
AssignFile(f,Edit3.text);
Rewrite(f);
AssignFile(fiva,Edit4.text);
Rewrite(fiva);

except
showmessage('Archivo incorrecto o ruta no válida');
exit;
end;



if RadioButton1.Checked then
begin
cadenaSQL := 'select H.codcia, C.NIF, H.codhoncia, H.codexp, H.tothonor, C.TipoIVA, C.Idioma, C.cuentacontable, C.formapago, C.nombre from honorcias H inner join Compania C '
+ 'on H.codcia = C.codcompania where'
+ ' H.codcia = "' + edit1.text
+ '" and cast(fcierre as date) >= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFInicial.date))
+ ' and cast(fcierre as date) <= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFFinal.date))
+ ' and Facturados = "N"';
end;


if RadioButton2.Checked then
begin
cadenaSQL := 'select H.codcia, C.NIF, H.codhoncia, H.codexp, H.tothonor, C.TipoIVA, C.Idioma, C.cuentacontable, C.formapago, C.nombre from honorcias H inner join Compania C '
+ 'on H.codcia = C.codcompania where'
+ ' cast(fcierre as date) >= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFInicial.date))
+ ' and cast(fcierre as date) <= ' + quotedStr(FormatDateTime('mm/dd/yyyy',DFFinal.date))
+ ' and Facturados = "N"';
end;

try

datamodule2.tblParamFac.open();

qry := TIBQuery.Create(qry);
qry.database := datamodule2.database;
qry.transaction := datamodule2.transaction;
Qry.SQL.Text := cadenaSQL;
qry.open();
qry.FetchAll;

if qry.RecordCount = 0 then
begin
Showmessage('No hay Registros a Facturar en el intervalo seleccionado.');
freeandnil(qry);
// raise exception.create('No hay Registros a Facturar en el intervalo seleccionado.');
end
else
begin
qry.first;
while not qry.EOF do { Cycle until EOF is True }
begin

vCuentaCOntable := qry.fields[7].value;

if qry.fields[8].AsString = 'Compañía' then // FormaPago
vimpext := 0
else
vimpext := CalculGastosExternos(qry.fields[3].value);

vRazon := qry.fields[9].value;

if not varisnull(qry.fields[5].value) then
vIVA := unitproc.Round_nDec(qry.fields[4].value * qry.fields[5].value / 100,2)
else vIVA := 0;

vBASE := qry.fields[4].value + vIVA;

vfecha := FormatDateTime('dd/mm/yyyy',now);
vhora := timetostr(time);

TRY



qryProva := TIBQuery.create(qryProva);
qryProva.database := datamodule2.database;
qryProva.transaction := datamodule2.transaction;
qryProva.UpdateObject := datamodule2.updFacturasCias;
qryProva.Sql.text := 'Select * from facturascias';
qryProva.Open;
qryProva.Append;

qryProva.FieldByName('codfac').asstring := inttostr(unitproc.ComptadorFacCias);
qryProva.FieldByName('codcia').Value := qry.fields[0].value;
qryProva.FieldByName('nif').Value := qry.fields[1].value;
qryProva.FieldByName('codhonor').Value := qry.fields[2].value;
qryProva.FieldByName('femision').asstring := FormatDateTime('dd/mm/yyyy',DFEmision.date);
qryProva.FieldByName('codexp').asstring := qry.fields[3].asstring;
qryProva.FieldByName('importe').asstring := qry.fields[4].asstring;
if not varisnull(qry.fields[5].value) then qryProva.FieldByName('porciva').asstring := qry.fields[5].value
else qryProva.FieldByName('porciva').asstring := '0';
qryProva.FieldByName('gastosext').asstring := floattostr(vIMPEXT);
qryProva.FieldByName('iva').asstring := floattostr(vIVA);
qryProva.FieldByName('base').asstring:= floattostr(vBASE);
qryProva.FieldByName('totfac').asstring:= floattostr(vBASE + vIMPEXT);
qryProva.FieldByName('Idioma').asstring := qry.fields[6].value;
qryProva.FieldByName('CtaGastos').Value := datamodule2.tblParamFacCTAINGRESOS.value;
qryProva.FieldByName('CtaIva').Value := datamodule2.tblParamFacCTAIVACIAS.value;
qryProva.FieldByName('CtaDeudora').Value := datamodule2.tblParamFacCTADEUDORES.value;
qryProva.FieldByName('Iban').Value := datamodule2.tblParamFacIBAN.value;
qryProva.FieldByName('Bic').Value := datamodule2.tblParamFacBIC.value;
qryProva.FieldByName('Cta').Value := datamodule2.tblParamFacCuenTA1.value + '-' + datamodule2.tblParamFacCuenTA2.value + '-'
+ datamodule2.tblParamFacCuenTA3.value + '-' + datamodule2.tblParamFacCuenTA4.value;
qryProva.FieldByName('Banco2').Value := datamodule2.tblParamFacBANCO.value;
qryProva.FieldByName('DiasVenc').asstring := datamodule2.tblParamFacDIASVENC.asstring;
qryProva.FieldByName('hum').AsString := timetostr(time);
qryProva.FieldByName('fum').asstring := datetostr(date);
qryProva.FieldByName('uum').asstring := vusuari;

lblMarquee.caption := 'Factura nº ' + qryProva.FieldByName('codfac').asstring;
lblMarquee.Repaint;

qryProva.Post;




// AQUI VA UN CODIGO MUUUY LARGO DE ESCRIBIR EN UN TXT QUE SE ENVIA AL BANCO.



finally
freeandnil(qryProva);
end;

// MARCAR FACTURAT
try

cadenaSQL := 'update honorcias set Facturados = "S", fvto = "' + FormatDateTime('mm/dd/yyyy',DFEmision.date) + '", '
+ 'ffact = "' + FormatDateTime('mm/dd/yyyy',DFEmision.date) + '"'
+ 'where codhoncia = ' + qry.fields[2].value;
qry2 := TIBQuery.Create(qry2);
qry2.database := datamodule2.database;
qry2.transaction := datamodule2.transaction;
Qry2.SQL.Text := cadenaSQL;

Qry2.Prepare;
Qry2.execsql;
Qry2.unPrepare;

qry2.Transaction.CommitRetaining;

finally
freeandnil(qry2);
end;

qry.Next; { EOF False on success; EOF True when Next fails on last record }

end;
end;

finally
freeandnil(qry);
CloseFile(f);
CloseFile(fiva);
end;

FacturasGastosExternos;

end;
Responder Con Cita