Ir al contenido


Foto

Notas de débito A y B en fiscal Hasar SMH/P330


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 santiago14

santiago14

    Advanced Member

  • Miembros
  • PipPipPip
  • 334 mensajes
  • LocationCerrillos - Salta - Argentina

Escrito 30 abril 2013 - 09:15

Bien, ahí van las impresiones de las Notas de débito A y B.
Son muy similares a las facturas puesto que contablemente sabemos que estos documentos son análogos.
Hay una sentencia: OutputDebugString(), que me manda un cartel a la ventana de eventos "Event log", la utilizo para ver por donde anda el flujo del código, era por unos problemas que tenía yo. No hay que llevarle mucho el apunte...


delphi
  1. //Nota de débito A
  2. procedure TFrmPpal.evNotaDebitoAEventAlert(Sender: TObject;
  3.   EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
  4. var
  5.   puerto:string;
  6.   ini:TIniFile;
  7.   factura:TEnc_egreso;
  8. begin
  9.   with DataModule2, IBConsulta, factura do
  10.   try
  11.     terminarTransaccion;
  12.     IBTransaccion.StartTransaction;
  13.     buscar_cliente_factura(ibconsulta, 'NOTA_DEBITO_A');
  14.   //Cargamos el registro con los datos del documento
  15.     //cod_egreso:=Fields[0].asInteger;
  16.     cod_egreso:=FieldByName('cod_egreso').AsInteger;
  17.     nombre_cliente:=FieldByName('nombre_cliente').AsString;
  18.     domicilio:=FieldByName('domicilio_cliente').AsString;
  19.     responsabilidad_iva:=FieldByName('responsabilidad_iva_cliente').AsString;
  20.     tipo_documento:=FieldByName('tipo_documento').AsString;
  21.     numero_documento:=FieldByName('numero_documento').AsString; //Sería el cuit
  22.     pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; //el pto de venta
  23.   //Abrimos la fiscal
  24.     abrir_fiscal(archivoINI);
  25.     Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
  26.     Hasar1.Comenzar;
  27.     Hasar1.TratarDeCancelarTodo;
  28.     Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
  29.       obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
  30.     //Hasar1.DescripcionesLargas:=false; //trunca las descripciones largas
  31.     Hasar1.AbrirComprobanteFiscal(NOTA_DEBITO_A);
  32.     Buscar_detalle_factura_A(ibconsulta, cod_egreso);
  33.     with ibconsulta do
  34.     begin
  35.       first;
  36.       while not eof do
  37.       begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS
  38.         hasar1.ImprimirItem(FieldByName('nombre_existencia').AsString, FieldByName('cantidad_egreso').AsFloat,
  39.           FieldByName('precio_final').AsFloat, FieldByName('porcentaje_alicuota').AsFloat, 0);
  40.         next;
  41.       end;
  42.     end;
  43.     hasar1.Subtotal(true);
  44.   //Imprimimos las formas de pago del cliente
  45.     Buscar_formas_pago_cliente(IBConsulta, cod_egreso);
  46.     with IBConsulta do
  47.     begin
  48.       First;
  49.       while not Eof do
  50.       begin
  51.         hasar1.ImprimirPago(FieldByName('tipo_forma_cobro').AsString,
  52.           FieldByName('monto_forma_cobro').AsFloat);
  53.         Next;
  54.       end;
  55.     end;
  56.     Hasar1.CerrarComprobanteFiscal;
  57.   //Me devuelve el nro de comprobante
  58.     nro_egreso:=StrToInt(Hasar1.Respuesta[3]);
  59.     registrar_numero_comprobante_egreso(nro_egreso, cod_egreso, IBConsulta);
  60.     Hasar1.Finalizar;
  61.     IBTransaccion.Commit;
  62.     CoolTrayIcon1.ShowBalloonHint('Impresora fiscal', 'Nota de débito A, Nº '
  63.       + LPad(pto_vta_egreso, 4, '0') + ' - ' + LPad(nro_egreso, 8, '0') + ' en la Impresora fiscal...',
  64.       bitInfo, 10);
  65.   except
  66.     on E:Exception do
  67.     begin
  68.       terminarTransaccion;
  69.       merrores(e, 'Error en la impresión de datos.', 'Impresión Nota de débito A');
  70.     end;
  71.   end;
  72. end;
  73.  
  74. //Nota de débito B
  75. procedure TFrmPpal.evNotaDebitoBEventAlert(Sender: TObject;
  76.   EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
  77. var
  78.   puerto:string;
  79.   ini:TIniFile;
  80.   factura:TEnc_egreso;
  81.   r:string;
  82. begin
  83.   with DataModule2, IBConsulta, factura do
  84.   begin
  85.     terminarTransaccion;
  86.     try
  87.       IBTransaccion.StartTransaction;
  88.       buscar_cliente_factura(ibconsulta, 'NOTA_DEBITO_B');
  89.     //Recuperamos los datos de la factura
  90.       //cod_egreso:=Fields[0].asInteger;
  91.       cod_egreso:=FieldByName('cod_egreso').AsInteger;
  92.       nombre_cliente:=FieldByName('nombre_cliente').AsString;
  93.       domicilio:=Trim(FieldByName('domicilio_cliente').AsString);
  94.       responsabilidad_iva:=FieldByName('responsabilidad_iva_cliente').AsString;
  95.       tipo_documento:=FieldByName('tipo_documento').AsString;
  96.       numero_documento:=FieldByName('numero_documento').AsString; //Sería el cuit
  97.       pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; //
  98.     //Abrimos la fiscal
  99.       abrir_fiscal(archivoINI);
  100.       Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
  101.  
  102.       DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
  103.       OutputDebugString(PChar(r + ' - Comenzar.'));
  104.       Hasar1.Comenzar;
  105.  
  106.       DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
  107.       OutputDebugString(PChar(r + ' - Tratar de cancelar todo.'));
  108.       Hasar1.TratarDeCancelarTodo;
  109.       if domicilio <> EmptyStr then
  110.       begin
  111.         DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
  112.         OutputDebugString(PChar(r + ' - Domicilio <> vacío.'));
  113.  
  114.         Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
  115.           obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
  116.       end
  117.       else
  118.       begin
  119.         DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
  120.         OutputDebugString(PChar(r + ' - Domicilio = vacío (por el else).'));
  121.        
  122.       //No acepta una variable con un espacio, así que le mandamos el espacio directamente.
  123.         Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
  124.           obtener_responsabilidad_iva(responsabilidad_iva), ' ');
  125.       end;
  126.       //Hasar1.DescripcionesLargas:=false; //trunca las descripciones largas
  127.       Hasar1.AbrirComprobanteFiscal(NOTA_DEBITO_B);
  128.       Buscar_detalle_factura_A(IBConsulta, cod_egreso);
  129.       with IBConsulta do
  130.       begin
  131.         first;
  132.         while not eof do
  133.         begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS
  134.           hasar1.ImprimirItem(FieldByName('nombre_existencia').AsString, FieldByName('cantidad_egreso').AsFloat,
  135.             FieldByName('precio_final').AsFloat, FieldByName('porcentaje_alicuota').AsFloat, 0);
  136.           next;
  137.         end;
  138.       end;
  139.       hasar1.Subtotal(true);
  140.     //Imprimimos las formas de pago del cliente
  141.       Buscar_formas_pago_cliente(IBConsulta, cod_egreso);
  142.       with IBConsulta do
  143.       begin
  144.         First;
  145.         while not Eof do
  146.         begin
  147.           hasar1.ImprimirPago(FieldByName('tipo_forma_cobro').AsString,
  148.             FieldByName('monto_forma_cobro').AsFloat);
  149.           Next;
  150.         end;
  151.       end;
  152.       Hasar1.CerrarComprobanteFiscal;
  153.     //Me devuelve el nro de comprobante
  154.       nro_egreso:=StrToInt(Hasar1.Respuesta[3]);
  155.       registrar_numero_comprobante_egreso(nro_egreso, cod_egreso, IBConsulta);
  156.       Hasar1.Finalizar;
  157.       IBTransaccion.Commit;
  158.       CoolTrayIcon1.ShowBalloonHint('Impresora fiscal', 'Nota de débito B, Nº '
  159.         + LPad(pto_vta_egreso, 4, '0') + ' - ' + LPad(nro_egreso, 8, '0') + ' en la Impresora fiscal...',
  160.         bitInfo, 10);
  161.     except
  162.       on E:Exception do
  163.       begin
  164.         terminarTransaccion;
  165.         merrores(e, 'Error en la impresión de datos.', 'Impresión Nota débito B.');
  166.        
  167.       end;
  168.     end;
  169.   end;
  170. end;



Saludos.
  • 0




IP.Board spam blocked by CleanTalk.