Ver Mensaje Individual
  #1  
Antiguo 07-02-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Transferencia facturas de venta a ContaPlus.

Con la idea de poner alguna cosa más a disposición de los miembros Premium, aquí dejo una parte del módulo de exportación a ContaPlus que hice en su día y que sigue funcional.

La segunda parte es decir como utilizar esta unidad cuanto tenga un rato, mañana lo dudo pero el fin de semana seguro lo publicaré en este mismo hilo.

A ver que os parece.
Código Delphi [-]
unit SpConta;
{Unidad para transferencia a contabildad M.A.Marcos}
interface
uses
{DmXX DataModulo en donde se halla la tabla clientes y Facturas de nuestra aplicación}
DmXX,Global,Dialogs, System;

Procedure Crear_Datasi();
Procedure Exportar_Datos_Cliente(c:String);

Function FillSpacesRight(cVar:String;nLen:Integer):String;
Function FillSpacesLeft(cVar:String;nLen:Integer):String;
Function FillZerosLeft(cVar:String;nLen:Integer):String;

Type
SPDiar = Record
Asien    :String[06];
Fecha    :String[08];
Subcta   :String[12];
Contra   :String[12];

PtaDebe  :String[16];
Concepto :String[25];
PtaHaber :String[16];
Factura  :String[08];
BaseImpo :String[16];
TIva     :String[05];
Trec     :String[05];
Document :String[10];
Departa  :String[03];
Clave    :String[06];
Estado   :String[01];
NCasado  :String[06];
TCasado  :String[01];
Trans    :String[06];
Cambio   :String[16];
Debeme   :String[16];
Haberme  :String[16];
Auxiliar :String[01];
Serie    :String[01];
Sucursal :String[04];
CodDivisa:String[05];
ImpAuxme :String[16];
Monedauso:String[01];

EuroDebe :String[16];
EuroHaber:String[16];
BaseEuro :String[16];

NoConv   :String[01];
NumeroInv:String[10];
end;

SPSubcta = Record
Cod      :String[12];
Titulo   :String[40];
Nif      :String[15];
Domicilio:String[35];
Poblacion:String[25];
Provincia:String[20];
CodPostal:String[05];
Divisa   :String[01];
CodDivisa:String[05];
Documento:String[01];
Ajustame :String[01];
TipoIva  :String[01];
end;

Const
{Directorio TMP de ContaPlus}
cCamino ='\\Puesto1\puesto1\GrupoSP\COE08R01\Tmp\';
cDiario ='Xdiario.Txt';
cSubcta ='Xsubcta.Txt';
cDatasi ='Xdatasi.Txt';
cFile1  =cCamino + cDiario;
cFile2  =cCamino + cSubcta;
cFile3  =cCamino + cDatasi;
CrLf:String = Chr(13)+Chr(10);

var
FDiario :TextFile;
FCliente:TextFile;
implementation



Procedure Crear_Datasi();
var
F1:TextFile;
begin
AssignFile(F1, cFile3);
Rewrite(f1);
CloseFile(F1);
end;


Procedure Exportar_Datos_Cliente(c:String);
var
spDatCli:SPSubcta;
begin

 if DmXX.Cli.FindKey([c]) then
 begin
 spDatCli.Cod       :=FillSpacesRight(DmXX.CliCodigo.Value,12);
 spDatCli.Titulo    :=FillSpacesRight(DmXX.CliRSOCIAL.Value,40);
 spDatCli.Nif       :=FillSpacesRight(DmXX.CliNif.Value,15);
 spDatCli.Domicilio :=FillSpacesRight(DmXX.CliCalle.Value,35);
 spDatCli.Poblacion :=FillSpacesRight(DmXX.CliPoblacion.Value,25);
 spDatCli.Provincia :=FillSpacesRight(DmXX.CliProvincia.Value,20);
 spDatCli.CodPostal :=FillSpacesRight(DmXX.clicPostal.Value,5);
 spDatCli.Divisa    :='F';
 spDatCli.CodDivisa :=FillSpacesRight('',5);
 spDatCli.Documento :='F';
 spDatCli.Ajustame  :='F';
 spDatCli.TipoIva   :=FillSpacesRight('',1);

 Write(FCliente, spDatCli.Cod );
 Write(FCliente, spDatCli.Titulo);
 Write(FCliente, spDatCli.Nif);
 Write(FCliente, spDatCli.Domicilio);
 Write(FCliente, spDatCli.Poblacion);
 Write(FCliente, spDatCli.Provincia);
 Write(FCliente, spDatCli.CodPostal);
 Write(FCliente, spDatcli.Divisa);
 Write(FCliente, spDatCli.CodDivisa);
 Write(FCliente, spDatCli.Documento);
 Write(FCliente, spDatCli.Ajustame);
 Write(FCliente, spDatCli.TipoIva);

 Write(FCliente,CrLf);
 end
 else
 ShowMessage('Cliente no encontrado:'+DmXX.FacturasCodclient.Value);

end;



 Function FillSpacesLeft(cVar:String;nLen:Integer):String;
 begin
 Result:=StringOfChar(' ',nLen - Length(cVar))+cVar;
 end;

 Function FillSpacesRight(cVar:String;nLen:Integer):String;
 begin
 Result:=cVar+StringOfChar(' ',nLen - Length(cVar));
 end;

 Function FillZerosLeft(cVar:String;nLen:Integer):String;
 begin
 Result:=StringOfChar('0',nLen - Length(cVar))+cVar;
 end;
end.

Un Saludo y espero vuestros comentarios.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 08-02-2008 a las 21:20:34.
Responder Con Cita