unit ConFacturas;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, SpConta;
Var
spDatDiario:SPDiar;
spContador:Integer;
Procedure Exportar_Factura_Sp();
procedure TfrConFacturas.spTrasSPClick(Sender: TObject);
var
cIndice:String;
begin
SPContador:=0;
Crear_Datasi();
cIndice:=DmYYY.Cli.IndexName;
DmYYY.Cli.IndexName:='';
Try
AssignFile(FDiario, cFile1);
Rewrite(FDiario);
AssignFile(FCliente, cFile2);
Rewrite(FCliente);
DmYYY2.Facturas.First;
While not DmYYY2.Facturas.Eof do
begin
Exportar_Factura_Sp();
DmYYY2.Facturas.Next;
end;
CloseFile(FDiario);
CloseFile(FCliente);
Application.MessageBox('Se trasapason los datos a contabilidad correctamente.','Atención',mb_Ok+
mb_IconQuestion);
Except
ShowMessage('Error al pasar los datos de las facturas.');
end;
DmYYY.Cli.IndexName:=cIndice;
end;
Procedure Exportar_Factura_Sp();
var
nInicio:Integer;
nTope:Integer;
cCodClient:String;
begin
if DmYYY2.FacturasRecargo.Value <> 0 then
nTope:=4
else
nTope:=3;
cCodClient:=DmYYY.CliCodigo.Value;
Exportar_Datos_Cliente(cCodClient);
SPContador:=SPContador + 1;
For nInicio:=1 to nTope do
begin
SPDatDiario.Asien :=FillSpacesLeft(IntToStr(spContador),6);
SPDatDiario.Fecha :=FormatDateTime('yyyymmdd',DmYYY2.FacturasFecha.Value);
Case nInicio of
1:SPDatDiario.Subcta :=FillSpacesRight('7000000',12);
2:SPDatDiario.Subcta :=FillSpacesRight(DmYYY.CliCodigo.Value,12);
3:SPDatDiario.Subcta :=FillSpacesRight('4770016',12);
4:SPDatDiario.Subcta :=FillSpacesRight('4750004',12);
end;
if nInicio > 2 then
SPDatDiario.Contra :=FillSpacesRight(DmYYY.CliCodigo.Value,12)
else
SPDatDiario.Contra :=FillSpacesRight('',12);
SPDatDiario.PtaDebe :=FillSpacesLeft('0.00',16);
SPDatDiario.Concepto :=FillSpacesRight(DmYYY2.FacturasNFactura.Value+' '+
DmYYY.CliBuscar.Value ,25);
SPDatDiario.PtaHaber :=FillSpacesLeft('0.00',16);
SPDatDiario.Factura :=FillSpacesLeft('0',8);
Case nInicio of
3:begin
SPDatDiario.BaseImpo :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasBase.Value) ,16),',','.',[rfReplaceAll]);
SPDatDiario.TIva :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasTIva.Value) ,05),',','.',[rfReplaceAll]);
SPDatDiario.Trec :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0),05),',','.',[rfReplaceAll]);
end;
4:begin
SPDatDiario.BaseImpo :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasBase.Value) ,16),',','.',[rfReplaceAll]);
SPDatDiario.TIva :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,05),',','.',[rfReplaceAll]);
SPDatDiario.Trec :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasTRecargo.Value),05),',','.',[rfReplaceAll]);
end;
else
begin
SPDatDiario.BaseImpo :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,16),',','.',[rfReplaceAll]);
SPDatDiario.TIva :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,05),',','.',[rfReplaceAll]);
SPDatDiario.Trec :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,05),',','.',[rfReplaceAll]);
end;
end;
SPDatDiario.Document :=FillSpacesLeft('',10);
SPDatDiario.Departa :=FillSpacesLeft('',03);
SPDatDiario.Clave :=FillSpacesLeft('',06);
SPDatDiario.Estado :=FillSpacesLeft('',01);
SPDatDiario.NCasado :=FillSpacesLeft('0',06);
SPDatDiario.TCasado :=FillSpacesLeft('0',01);
SPDatDiario.Trans :=FillSpacesLeft('0',06);
SPDatDiario.Cambio :=StringReplace(FillSpacesLeft(FormatFloat('0.000000',0.00),16),',','.',[rfReplaceAll]);
SPDatDiario.Debeme :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0.00),16),',','.',[rfReplaceAll]);
SPDatDiario.Haberme :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0.00),16),',','.',[rfReplaceAll]);
SPDatDiario.Auxiliar :=FillSpacesLeft('',1);
SPDatDiario.Serie :=FillSpacesLeft('',1);
SPDatDiario.Sucursal :=FillSpacesLeft('',4);
SPDatDiario.CodDivisa:=FillSpacesLeft('',5);
SPDatDiario.ImpAuxme :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0.00),16),',','.',[rfReplaceAll]);
SPDatDiario.MonedaUso:=FillSpacesLeft('2',1);
Case nInicio of
1:begin
SPDatDiario.EuroDebe :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0),16),',','.',[rfReplaceAll]);
SPDatDiario.EuroHaber:=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasBase.Value) ,16),',','.',[rfReplaceAll]);
SPDatDiario.BaseEuro :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,16),',','.',[rfReplaceAll]);
end;
2:begin
SPDatDiario.EuroDebe :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasTotal.Value),16),',','.',[rfReplaceAll]);
SPDatDiario.EuroHaber:=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,16),',','.',[rfReplaceAll]);
SPDatDiario.BaseEuro :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0) ,16),',','.',[rfReplaceAll]);
end;
3:begin
SPDatDiario.EuroDebe :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0),16),',','.',[rfReplaceAll]);
SPDatDiario.EuroHaber:=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasIva.Value) ,16),',','.',[rfReplaceAll]);
SPDatDiario.BaseEuro :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasBase.Value) ,16),',','.',[rfReplaceAll]);
end;
4:begin
SPDatDiario.EuroDebe :=StringReplace(FillSpacesLeft(FormatFloat('0.00',0),16),',','.',[rfReplaceAll]);
SPDatDiario.EuroHaber:=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasRecargo.Value) ,16),',','.',[rfReplaceAll]);
SPDatDiario.BaseEuro :=StringReplace(FillSpacesLeft(FormatFloat('0.00',DmYYY2.FacturasBase.Value) ,16),',','.',[rfReplaceAll]);
end;
end;
SPDatDiario.NoConv :='F';
SPDatDiario.NumeroInv:=FillSpacesLeft('',10);
Write(FDiario, SPDatDiario.Asien);
Write(FDiario, SPDatDiario.Fecha);
Write(FDiario, SPDatDiario.Subcta);
Write(FDiario, SPDatDiario.Contra);
Write(FDiario, SPDatDiario.PtaDebe);
Write(FDiario, SPDatDiario.Concepto);
Write(FDiario, SPDatDiario.PtaHaber);
Write(FDiario, SPDatDiario.Factura);
Write(FDiario, SPDatDiario.BaseImpo);
Write(FDiario, SPDatDiario.Tiva);
Write(FDiario, SPDatDiario.TRec);
Write(FDiario, SPDatDiario.Document);
Write(FDiario, SPDatDiario.Departa);
Write(FDiario, SPDatDiario.Clave);
Write(FDiario, SPDatDiario.Estado);
Write(FDiario, SPDatDiario.NCasado);
Write(FDiario, SPDatDiario.TCasado);
Write(FDiario, SPDatDiario.Trans);
Write(FDiario, SPDatDiario.Cambio);
Write(FDiario, SPDatDiario.Debeme);
Write(FDiario, SPDatDiario.Haberme);
Write(FDiario, SPDatDiario.Auxiliar);
Write(FDiario, SPDatDiario.Serie);
Write(FDiario, SPDatDiario.Sucursal);
Write(FDiario, SPDatDiario.CodDivisa);
Write(FDiario, SPDatDiario.ImpAuxMe);
Write(FDiario, SPDatDiario.MonedaUso);
Write(FDiario, SPDatDiario.EuroDebe);
Write(FDiario, SPDatDiario.EuroHaber);
Write(FDiario, SPDatDiario.BaseEuro);
Write(FDiario, SPDatDiario.NoConv);
Write(FDiario, SPDatDiario.NumeroInv);
Write(FDiario,CrLf);
end;
end;