Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2008
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Aaaaaahhhhhggg!!!, que bien me hubiese venido esa información hace unos meses. No encontré nada sobre el formato de importación de Contaplus.

Al final me tube que pelear con las tablas del Contaplus (vaya experiencia...) para exportar directamente sobre ellas.

De todas maneras creo que me va a ser muy útil tu código. Muchas gracias.
__________________
Saludos.
Responder Con Cita
  #2  
Antiguo 08-02-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
unit ConFacturas;

interface
{Este es el módulo en el que tenemos las facturas seleccionadas para pasarlas a Contabilidad
Utiliza la unidad Spconta que se presentó anteriormente.
Al pulsar un botón el usuario transferirá todas las facturas en formato TXT a la carpeta TEMP de Contaplus.

Conviene que nuestra tabla de Facturas tenga un campo Booleano para ir marcando las que sean transferidas.
Las facturas por ejemplo se presentarán en una rejilla, bien todas las pendientes de contabilizar, las pendientes y 
hasta cierta fecha u otras combinaciones que se nos ocurran o que nos pida el cliente.}
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, SpConta;
  Var
  spDatDiario:SPDiar;
  spContador:Integer;
    //Exportar Contaplus
  Procedure Exportar_Factura_Sp();



{Este es el botón que presenta la rejilla en donde se muestran las facturas susceptibles de ser contabilizadas, en su barra de navegación}
procedure TfrConFacturas.spTrasSPClick(Sender: TObject);
var
cIndice:String;
begin
SPContador:=0;

Crear_Datasi();

{Guardo el índice actual y activo el índice por Código de cliente, en el momento de la transferencia las tabla de clientes
debe estar indexada por el campo código para que cada vez que vayamos a transferir una factura podamos encontrar
los datos correspondientes al cliente en la tabla del mismo nombre}

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;

  //Cerrar los ficheros al finalizar.
  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;


    //Solo partidas de IVA
    if nInicio > 2 then
    SPDatDiario.Contra   :=FillSpacesRight(DmYYY.CliCodigo.Value,12)
    else
    SPDatDiario.Contra   :=FillSpacesRight('',12);

  SPDatDiario.PtaDebe  :=FillSpacesLeft('0.00',16);
{Paso como concepto el número de la Factura más un nombre abreviado que uso para el cliente, conviene recordar que 
este campo tiene poca capacidad por lo que ha que abreviar el texto}

  SPDatDiario.Concepto :=FillSpacesRight(DmYYY2.FacturasNFactura.Value+' '+
  DmYYY.CliBuscar.Value ,25);

  SPDatDiario.PtaHaber :=FillSpacesLeft('0.00',16);
  SPDatDiario.Factura  :=FillSpacesLeft('0',8);

    //Solo partidas de IVA
    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
  {700 Base al Haber}
  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;
  {430 Total al Debe}
  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;
  {477 Iva al haber}
  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;
  {4750004 Recargo al haber}
  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);
  //Varía
  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;
__________________
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:24:50.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Migracion de Tablas | Contaplus -> Cualquier BD LuCkY_007 Varios 1 11-04-2007 17:18:41
Generar Fichero de Texto Contaplus muli Varios 4 16-05-2006 21:28:06
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44
Delphi y ContaPlus... Tanix Varios 5 17-10-2003 12:59:21


La franja horaria es GMT +2. Ahora son las 23:55:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi