Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como verificar la correlativad de documentos (https://www.clubdelphi.com/foros/showthread.php?t=93883)

oscarac 20-04-2019 02:23:53

Como verificar la correlativad de documentos
 
tengo una relacion de facturas

Cita:

F001-0008
F002-0001
F002-0002
F002-0003
F002-0005
como podría implementar una rutina para determinar que falta la factura F002-0004

tengo algunas ideas de capturar el primer registro e ir verificando (Sumando 1) después de la serie la numeración, pero me estoy enredando un poco.

ahora en la primera factura que aparece F001-0008, no hay cambios ni errores pq la siguiente es la serie F002

alguien tiene una rutina semejante

mamcx 20-04-2019 02:46:46

No entiendo que te enrueda?

Ordenas todo, particionas por F... y haces lo que dices de ir sumando...

oscarac 20-04-2019 03:08:06

al parecer no explique bien el problema,
existen diferentes tipos de documento (F,B,T)

pero ya lo soluciones de esta manera

Código Delphi [-]
  SqlStr := 'Select TDC, DOC ' +
            'From TblFacturasC ' +
            'Where Empresa = ' + QuotedStr(dmGlobal.g_CodigoEmpresa) +
            ' and Periodo = ' + QuotedStr(dmGlobal.g_Periodo) +
            ' order by TDC, DOC' ;

  CdsCorrelativoVenta.EmptyDataSet;
  CdsCorrelativoVenta.Open;
  qryVerCorrelativoVenta.Close;
  qryVerCorrelativoVenta.SQL.Clear;
  qryVerCorrelativoVenta.SQL.Add(SqlStr);
  qryVerCorrelativoVenta.Open;
  qryVerCorrelativoVenta.First;
  ProgressBarXls.Max := qryVerCorrelativoVenta.RecordCount;
  ProgressBarXls.Position := 0;
  ProgressBarXls.Visible := True;
  _TDC := qryVerCorrelativoVentaTDC.AsString;
  _DOC := qryVerCorrelativoVentaDOC.AsString;
  qryVerCorrelativoVenta.Next;
  While not qryVerCorrelativoVenta.eof Do
  Begin
    Application.ProcessMessages;
    if Izquierda(_DOC, Pos('-', _DOC)) <> Izquierda(qryVerCorrelativoVentaDOC.AsString, pos ('-', qryVerCorrelativoVentaDOC.AsString)) then
    Begin
      _TDC := qryVerCorrelativoVentaTDC.AsString;
      _DOC := qryVerCorrelativoVentaDOC.AsString;
    End
    Else
    if StrToInt(Desde(_DOC, Pos('-', _DOC)+1)) + 1 <> StrToInt(Desde(qryVerCorrelativoVentaDOC.AsString, Pos('-', qryVerCorrelativoVentaDOC.AsString)+1)) then
    begin
      x_DOC := StrToInt(Desde(_DOC, Pos('-', _DOC)+1)) + 1;
      while StrToInt(Desde(qryVerCorrelativoVentaDOC.AsString, Pos('-', qryVerCorrelativoVentaDOC.AsString)+1)) > x_DOC do
      begin
        CdsCorrelativoVenta.Append;
        CdsCorrelativoVentaTDC.AsString := _TDC;
        CdsCorrelativoVentaDOC.AsString := IntToStr(x_DOC);
        CdsCorrelativoVenta.Post;
        Inc(x_DOC);
      end;
      _DOC := qryVerCorrelativoVentaDOC.AsString;
    end
    else
    begin
      _TDC := qryVerCorrelativoVentaTDC.AsString;
      _DOC := qryVerCorrelativoVentaDOC.AsString;
    end;
    qryVerCorrelativoVenta.Next;
    ProgressBarXls.Position := ProgressBarXls.Position + 1;
  End;

Casimiro Notevi 20-04-2019 10:31:28

Tampoco he entendido el problema :(

Javierus 21-04-2019 16:53:04

Cita:

Empezado por Casimiro Notevi (Mensaje 531581)
Tampoco he entendido el problema :(

Ver si la relación de facturas emitidas está bien o hay huecos( que van a suponer un problema fiscal)

Casimiro Notevi 21-04-2019 19:33:41

Sí, eso está claro, lo que no he entendido es cuál problema tiene para no tener los documentos correlativos.

oscarac 21-04-2019 21:38:54

el problema es que en el sistema, el usuario mismo puede elegir la numeracion y en algunos casos se puede confundir, es por eso que posteriormente se ejecuta un proceso de verificacion

en realidad la numeracion no se deberia cambiar, pero con los usuarios finales nunca se sabe

Casimiro Notevi 21-04-2019 21:41:34

¿Y por qué pueden elegir ellos el número?

Javierus 21-04-2019 21:59:39

Cita:

Empezado por Casimiro Notevi (Mensaje 531593)
¿Y por qué pueden elegir ellos el número?

A veces hace falta. Por ejemplo, porque hay usuarios que así lo quieren, dejando de lado la fiscalidad y yendo a la vida real.
Y el que paga manda.

Casimiro Notevi 22-04-2019 00:53:37

Ya sé qué puede ocurrir eso, pero para evitar esos problemas, desde hace años es raro que encuentres un software que lo permita, no ya porque sea ilegal, sino incluso porque no tiene ninguna lógica. Y, sí, también sé lo que me vas a decir en relación a la "lógica" y los motivos por los que a veces se permite esto :)

De todas formas,habría que conocer exactamente cómo será el tema legalmente en Perú, país de oscarac.

oscarac 22-04-2019 01:23:13

ya se esta hablando de facturacion electronica en Perú
y mientras no se declare la factura a la entidad supervisora (SUNAT) pues, es un papel cualquiera con informacion nada mas.

Casimiro Notevi 22-04-2019 09:33:39

Cita:

Empezado por oscarac (Mensaje 531602)
... es un papel cualquiera con informacion nada mas.

Entonces no hay preocupación ;)


La franja horaria es GMT +2. Ahora son las 21:08:16.

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