chele |
14-07-2004 17:05:53 |
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;
|