Gracias por responder. Este seria el codigo completo
Código Delphi
[-]
if Edit11.Text = 'A' then begin
if RzRadioButton3.Checked = true then
tipo_doc2:= 'T'
else
if RzRadioButton4.Checked = true then
tipo_doc2:= 'M'
else
if RzRadioButton5.Checked = true then
tipo_doc2:= 'D';
salida:= 'C';
letra:= 'A'; cant_copias:= '1';
tipo_form:= 'P';
tipo_letra:= '12';
resp_iva_em:= 'I';
resp_iva_com:= 'I'; nom_comp:= RzDBLabel1.Caption;
nom_comp2:= '';
tipo_doc_comp:= 'CUIT'; num_doc:= RzButtonEdit1.Text;
bien_de_uso:= 'N';
domicilio1:= RzDBLabel2.Caption;
domicilio2:= '';
domicilio3:= '';
num_remito1:= 'R1';
num_remito2:= 'R2';
tipo_item:= 'G';
PrinterFiscal1.PortNumber:= Form1.puerto_fiscal;
PrinterFiscal1.BaudRate:= '9600';
PrinterFiscal1.OpenInvoice(tipo_doc2, salida, letra , cant_copias, tipo_form, tipo_letra,
resp_iva_em, resp_iva_com, nom_comp, nom_comp2, tipo_doc_comp,
num_doc, bien_de_uso,domicilio1, domicilio2, domicilio3, num_remito1, num_remito2, tipo_item);
calificador:= 'M';
cant_bultos:= '0';
imp_int_por:= '0';
descripcion2:= '';
descripcion3:= '';
descripcion4:= '';
tasa_acrecentamiento:= '0';
ClientDataSet1.DisableControls;
ClientDataSet1.First;
while ClientDataSet1.Eof = false do
begin
cant:= RoundTo(ClientDataSet1.FieldByName('cantidad').AsFloat, -2);
descripcion:= Copy(ClientDataSet1.FieldByName('descripcion').AsString, 1, 20);
cantidad:= FloatToStr(cant * 100);
iva:= FloatToStr(ClientDataSet1.FieldByName('iva').AsFloat * 100);
precio_si:= ClientDataSet1.FieldByName('precio').AsFloat - ClientDataSet1.FieldByName('val_imp_interno').AsFloat;
if ClientDataSet1.FieldByName('iva').AsFloat = 21.00 then
precio_si:= precio_si / 1.21
else
precio_si:= precio_si / 1.105;
precio:= FloatToStr(RoundTo(precio_si * 1000 , 0));
if ClientDataSet1.FieldByName('val_imp_interno').AsFloat <> 0.00 then
begin
imp_int:= ClientDataSet1.FieldByName('val_imp_interno').AsFloat;
imp_int_fijos:= FloatToStr(RoundTo(imp_int * cant, 2) * 100);
end
else
imp_int_fijos:= '0';
PrinterFiscal1.SendInvoiceItem(descripcion, precio, cantidad, iva, calificador, cant_bultos,
imp_int_por, descripcion2, descripcion3, descripcion4, tasa_acrecentamiento, imp_int_fijos);
ClientDataSet1.Next;
end;
ClientDataSet1.EnableControls;
if RzRadioButton1.Checked = true then
texto_pago:= 'Contado'
else
if RzRadioButton2.Checked = true then
texto_pago:= 'Cuenta Corriente';
subtotal1:= 'P';
subtotal2:= '';
PrinterFiscal1.GetInvoiceSubtotal(subtotal1, subtotal2);
descripcion_pago:= 'T';
importe_pago:= FloatToStr(StrToFloat(RzLabel12.Caption) * 100);
PrinterFiscal1.SendInvoicePayment(texto_pago, importe_pago, descripcion_pago);
texto:= '';
PrinterFiscal1.CloseInvoice(tipo_doc2, letra, texto);
end;