Servicios.SmLogistics.java Source code

Java tutorial

Introduction

Here is the source code for Servicios.SmLogistics.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Servicios;

import Hibernate.Util.HibernateUtil;
import Hibernate.entidades.Acceso;
import Hibernate.entidades.Configuracion;
import Hibernate.entidades.Cuenta;
import Hibernate.entidades.Foto;
import Hibernate.entidades.Notificacion;
import Hibernate.entidades.Orden;
import Hibernate.entidades.Usuario;
import Integral.ExtensionFileFilter;
import Integral.Herramientas;
import Integral.PDF;
import Integral.PeticionPost;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.GrayColor;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import java.awt.Desktop;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Files;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.json.JSONObject;

/**
 *
 * @author Sistemas
 */
public class SmLogistics extends javax.swing.JPanel {

    String estado = "";
    String sessionPrograma = "";
    Usuario usr;
    String ord = "";
    Herramientas h;
    Orden orden_act;
    JFileChooser selector;
    String ruta;

    /**
     * Creates new form SmLogistics
     */
    public SmLogistics(String ord, Usuario usr, String estado, String sessionPrograma, String carpeta) {
        initComponents();
        this.ord = ord;
        this.usr = usr;
        this.estado = estado;
        this.sessionPrograma = sessionPrograma;
        ruta = carpeta;
        buscaDatos();
        selector = new JFileChooser();
        selector.setFileFilter(new ExtensionFileFilter("Documentos(PDF y DOCX)", new String[] { "PDF", "DOCX" }));
        selector.setAcceptAllFileFilterUsed(false);
        selector.setMultiSelectionEnabled(true);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        t_fecha_cliente = new javax.swing.JTextField();
        jPanel2 = new javax.swing.JPanel();
        b_inventario_formato = new javax.swing.JButton();
        b_inventario_carga = new javax.swing.JButton();
        b_inventario = new javax.swing.JButton();
        jPanel15 = new javax.swing.JPanel();
        jPanel17 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        t_cotizacion_taller = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        t_cotizacion_autorizado = new javax.swing.JTextField();
        b_cotizacion_carga = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jPanel4 = new javax.swing.JPanel();
        b_desgaste_formato = new javax.swing.JButton();
        b_desgaste_carga = new javax.swing.JButton();
        b_desgaste = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        b_pago_formato = new javax.swing.JButton();
        b_pago_carga = new javax.swing.JButton();
        b_pago = new javax.swing.JButton();
        jPanel6 = new javax.swing.JPanel();
        b_entrega_formato = new javax.swing.JButton();
        b_entrega_carga = new javax.swing.JButton();
        b_entrega = new javax.swing.JButton();
        jLabel5 = new javax.swing.JLabel();
        t_solicitud = new javax.swing.JTextField();
        b_guardar = new javax.swing.JButton();

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "SM Logistics.",
                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 12))); // NOI18N

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("F. Promesa");

        t_fecha_cliente.setEditable(false);
        t_fecha_cliente.setBackground(new java.awt.Color(204, 255, 255));
        t_fecha_cliente.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        t_fecha_cliente.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jPanel2.setBackground(new java.awt.Color(255, 255, 255));
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Inventario de Ingreso",
                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 10))); // NOI18N

        b_inventario_formato.setBackground(new java.awt.Color(2, 135, 242));
        b_inventario_formato.setForeground(new java.awt.Color(255, 255, 255));
        b_inventario_formato.setIcon(new ImageIcon("imagenes/impresora.png"));
        b_inventario_formato.setToolTipText("Calendario");
        b_inventario_formato.setMaximumSize(new java.awt.Dimension(32, 8));
        b_inventario_formato.setMinimumSize(new java.awt.Dimension(32, 8));
        b_inventario_formato.setPreferredSize(new java.awt.Dimension(28, 24));
        b_inventario_formato.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_inventario_formatoActionPerformed(evt);
            }
        });

        b_inventario_carga.setBackground(new java.awt.Color(2, 135, 242));
        b_inventario_carga.setForeground(new java.awt.Color(255, 255, 255));
        b_inventario_carga.setIcon(new ImageIcon("imagenes/subir.png"));
        b_inventario_carga.setToolTipText("Calendario");
        b_inventario_carga.setEnabled(false);
        b_inventario_carga.setMaximumSize(new java.awt.Dimension(32, 8));
        b_inventario_carga.setMinimumSize(new java.awt.Dimension(32, 8));
        b_inventario_carga.setPreferredSize(new java.awt.Dimension(28, 24));
        b_inventario_carga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_inventario_cargaActionPerformed(evt);
            }
        });

        b_inventario.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        b_inventario.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_inventarioActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(jPanel2Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap()
                        .addComponent(b_inventario, javax.swing.GroupLayout.PREFERRED_SIZE, 213,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(b_inventario_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(b_inventario_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(b_inventario, javax.swing.GroupLayout.PREFERRED_SIZE, 53,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addComponent(b_inventario_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(b_inventario_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE)));

        jPanel15.setBackground(new java.awt.Color(255, 255, 255));
        jPanel15.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Cotizacin",
                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 10))); // NOI18N
        jPanel15.setLayout(new java.awt.BorderLayout());

        jPanel17.setBackground(new java.awt.Color(255, 255, 255));

        jLabel2.setText("Taller:");

        t_cotizacion_taller.setEditable(false);
        t_cotizacion_taller.setBackground(new java.awt.Color(204, 255, 255));
        t_cotizacion_taller.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel3.setText("Autorizado:");

        t_cotizacion_autorizado.setEditable(false);
        t_cotizacion_autorizado.setBackground(new java.awt.Color(204, 255, 255));
        t_cotizacion_autorizado.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        b_cotizacion_carga.setBackground(new java.awt.Color(2, 135, 242));
        b_cotizacion_carga.setForeground(new java.awt.Color(255, 255, 255));
        b_cotizacion_carga.setIcon(new ImageIcon("imagenes/cuenta.png"));
        b_cotizacion_carga.setToolTipText("Calendario");
        b_cotizacion_carga.setEnabled(false);
        b_cotizacion_carga.setMaximumSize(new java.awt.Dimension(32, 8));
        b_cotizacion_carga.setMinimumSize(new java.awt.Dimension(32, 8));
        b_cotizacion_carga.setPreferredSize(new java.awt.Dimension(28, 24));
        b_cotizacion_carga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_cotizacion_cargaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
        jPanel17.setLayout(jPanel17Layout);
        jPanel17Layout.setHorizontalGroup(jPanel17Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel17Layout.createSequentialGroup().addContainerGap().addGroup(jPanel17Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                jPanel17Layout.createSequentialGroup().addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(t_cotizacion_taller, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                90, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(jPanel17Layout.createSequentialGroup().addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(t_cotizacion_autorizado, javax.swing.GroupLayout.PREFERRED_SIZE, 90,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(b_cotizacion_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel17Layout.setVerticalGroup(jPanel17Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel17Layout.createSequentialGroup().addGroup(jPanel17Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(b_cotizacion_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel17Layout.createSequentialGroup()
                                .addGroup(jPanel17Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(t_cotizacion_taller, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jLabel2))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel17Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(t_cotizacion_autorizado,
                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jLabel3))))
                        .addGap(0, 12, Short.MAX_VALUE)));

        jPanel15.add(jPanel17, java.awt.BorderLayout.CENTER);

        jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Servicios/icono.png"))); // NOI18N

        jPanel4.setBackground(new java.awt.Color(255, 255, 255));
        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true),
                "Desgaste no Atribuible al siniestro", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
                javax.swing.border.TitledBorder.TOP, new java.awt.Font("Arial", 1, 10))); // NOI18N

        b_desgaste_formato.setBackground(new java.awt.Color(2, 135, 242));
        b_desgaste_formato.setForeground(new java.awt.Color(255, 255, 255));
        b_desgaste_formato.setIcon(new ImageIcon("imagenes/impresora.png"));
        b_desgaste_formato.setToolTipText("Calendario");
        b_desgaste_formato.setMaximumSize(new java.awt.Dimension(32, 8));
        b_desgaste_formato.setMinimumSize(new java.awt.Dimension(32, 8));
        b_desgaste_formato.setPreferredSize(new java.awt.Dimension(28, 24));
        b_desgaste_formato.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_desgaste_formatoActionPerformed(evt);
            }
        });

        b_desgaste_carga.setBackground(new java.awt.Color(2, 135, 242));
        b_desgaste_carga.setForeground(new java.awt.Color(255, 255, 255));
        b_desgaste_carga.setIcon(new ImageIcon("imagenes/subir.png"));
        b_desgaste_carga.setToolTipText("Calendario");
        b_desgaste_carga.setEnabled(false);
        b_desgaste_carga.setMaximumSize(new java.awt.Dimension(32, 8));
        b_desgaste_carga.setMinimumSize(new java.awt.Dimension(32, 8));
        b_desgaste_carga.setPreferredSize(new java.awt.Dimension(28, 24));
        b_desgaste_carga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_desgaste_cargaActionPerformed(evt);
            }
        });

        b_desgaste.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        b_desgaste.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_desgasteActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(jPanel4Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel4Layout.createSequentialGroup().addGap(6, 6, 6)
                        .addComponent(b_desgaste, javax.swing.GroupLayout.PREFERRED_SIZE, 213,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(b_desgaste_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(b_desgaste_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(b_desgaste, javax.swing.GroupLayout.Alignment.TRAILING,
                        javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                        .addComponent(b_desgaste_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(b_desgaste_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));

        jPanel5.setBackground(new java.awt.Color(255, 255, 255));
        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Procceso de Pago",
                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 10))); // NOI18N

        b_pago_formato.setBackground(new java.awt.Color(2, 135, 242));
        b_pago_formato.setForeground(new java.awt.Color(255, 255, 255));
        b_pago_formato.setIcon(new ImageIcon("imagenes/impresora.png"));
        b_pago_formato.setToolTipText("Calendario");
        b_pago_formato.setMaximumSize(new java.awt.Dimension(32, 8));
        b_pago_formato.setMinimumSize(new java.awt.Dimension(32, 8));
        b_pago_formato.setPreferredSize(new java.awt.Dimension(28, 24));
        b_pago_formato.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_pago_formatoActionPerformed(evt);
            }
        });

        b_pago_carga.setBackground(new java.awt.Color(2, 135, 242));
        b_pago_carga.setForeground(new java.awt.Color(255, 255, 255));
        b_pago_carga.setIcon(new ImageIcon("imagenes/subir.png"));
        b_pago_carga.setToolTipText("Calendario");
        b_pago_carga.setEnabled(false);
        b_pago_carga.setMaximumSize(new java.awt.Dimension(32, 8));
        b_pago_carga.setMinimumSize(new java.awt.Dimension(32, 8));
        b_pago_carga.setPreferredSize(new java.awt.Dimension(28, 24));
        b_pago_carga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_pago_cargaActionPerformed(evt);
            }
        });

        b_pago.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        b_pago.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_pagoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(jPanel5Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel5Layout.createSequentialGroup().addContainerGap()
                        .addComponent(b_pago, javax.swing.GroupLayout.PREFERRED_SIZE, 213,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(b_pago_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(b_pago_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel5Layout.setVerticalGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(b_pago, javax.swing.GroupLayout.Alignment.TRAILING,
                        javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                        .addComponent(b_pago_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(b_pago_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));

        jPanel6.setBackground(new java.awt.Color(255, 255, 255));
        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(
                new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Check List de Entrega",
                javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP,
                new java.awt.Font("Arial", 1, 10))); // NOI18N

        b_entrega_formato.setBackground(new java.awt.Color(2, 135, 242));
        b_entrega_formato.setForeground(new java.awt.Color(255, 255, 255));
        b_entrega_formato.setIcon(new ImageIcon("imagenes/impresora.png"));
        b_entrega_formato.setToolTipText("Calendario");
        b_entrega_formato.setMaximumSize(new java.awt.Dimension(32, 8));
        b_entrega_formato.setMinimumSize(new java.awt.Dimension(32, 8));
        b_entrega_formato.setPreferredSize(new java.awt.Dimension(28, 24));
        b_entrega_formato.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_entrega_formatoActionPerformed(evt);
            }
        });

        b_entrega_carga.setBackground(new java.awt.Color(2, 135, 242));
        b_entrega_carga.setForeground(new java.awt.Color(255, 255, 255));
        b_entrega_carga.setIcon(new ImageIcon("imagenes/subir.png"));
        b_entrega_carga.setToolTipText("Calendario");
        b_entrega_carga.setEnabled(false);
        b_entrega_carga.setMaximumSize(new java.awt.Dimension(32, 8));
        b_entrega_carga.setMinimumSize(new java.awt.Dimension(32, 8));
        b_entrega_carga.setPreferredSize(new java.awt.Dimension(28, 24));
        b_entrega_carga.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_entrega_cargaActionPerformed(evt);
            }
        });

        b_entrega.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        b_entrega.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_entregaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(jPanel6Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel6Layout.createSequentialGroup().addGap(6, 6, 6)
                        .addComponent(b_entrega, javax.swing.GroupLayout.PREFERRED_SIZE, 213,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(b_entrega_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(b_entrega_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel6Layout.setVerticalGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(b_entrega, javax.swing.GroupLayout.Alignment.TRAILING,
                        javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                        .addComponent(b_entrega_carga, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(b_entrega_formato, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)));

        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel5.setText("Solicitud:");

        t_solicitud.setBackground(new java.awt.Color(204, 255, 255));
        t_solicitud.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        t_solicitud.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        t_solicitud.setEnabled(false);

        b_guardar.setBackground(new java.awt.Color(2, 135, 242));
        b_guardar.setForeground(new java.awt.Color(255, 255, 255));
        b_guardar.setIcon(new ImageIcon("imagenes/guardar.png"));
        b_guardar.setToolTipText("Calendario");
        b_guardar.setEnabled(false);
        b_guardar.setMaximumSize(new java.awt.Dimension(32, 8));
        b_guardar.setMinimumSize(new java.awt.Dimension(32, 8));
        b_guardar.setPreferredSize(new java.awt.Dimension(33, 33));
        b_guardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                b_guardarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, 213,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 83,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(t_fecha_cliente, javax.swing.GroupLayout.PREFERRED_SIZE, 96,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel5)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(t_solicitud, javax.swing.GroupLayout.PREFERRED_SIZE, 96,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(b_guardar, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18).addComponent(jLabel4)))
                        .addContainerGap(303, Short.MAX_VALUE)));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(11, 11, 11).addGroup(jPanel1Layout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addGroup(jPanel1Layout.createSequentialGroup()
                                                        .addComponent(b_guardar,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addGap(9, 9, 9))
                                                .addGroup(jPanel1Layout.createSequentialGroup()
                                                        .addGroup(jPanel1Layout
                                                                .createParallelGroup(
                                                                        javax.swing.GroupLayout.Alignment.BASELINE)
                                                                .addComponent(jLabel5).addComponent(t_solicitud,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                                        .addGap(18, 18, 18)))
                                                .addGroup(jPanel1Layout
                                                        .createParallelGroup(
                                                                javax.swing.GroupLayout.Alignment.BASELINE)
                                                        .addComponent(jLabel1).addComponent(t_fecha_cliente,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGap(18, 18, 18)))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))))
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 56,
                                javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                Short.MAX_VALUE));
    }// </editor-fold>//GEN-END:initComponents

    private void b_inventario_formatoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_inventario_formatoActionPerformed
        // TODO add your handling code here:
        h = new Herramientas(usr, 0);
        h.session(sessionPrograma);
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
            Orden ord = (Orden) session.get(Orden.class, orden_act.getIdOrden());
            session.beginTransaction().begin();
            Configuracion con = (Configuracion) session.get(Configuracion.class, 1);

            PDF reporte = new PDF();
            Date fecha = new Date();
            DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
            String valor = dateFormat.format(fecha);
            File folder = new File("reportes/" + ord.getIdOrden());
            folder.mkdirs();
            reporte.Abrir2(PageSize.LETTER, "Inventario de Tractocamin",
                    "reportes/" + ord.getIdOrden() + "/" + valor + "-invTRacto.pdf");

            reporte.agregaObjeto(reporte.crearImagen("imagenes/empresa300115.jpg", 00, -32, 17));

            reporte.contenido.setLineWidth(0.5f);
            reporte.contenido.setColorStroke(new GrayColor(0.2f));
            reporte.contenido.setColorFill(new GrayColor(0.9f));
            reporte.contenido.roundRectangle(30, 710, 550, 60, 5);

            reporte.inicioTexto();
            reporte.contenido.setFontAndSize(bf, 14);
            reporte.contenido.setColorFill(BaseColor.BLACK);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, con.getEmpresa(), 305, 755, 0);
            reporte.contenido.setFontAndSize(bf, 8);
            reporte.contenido.setColorFill(BaseColor.BLACK);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "HOLAJATERIA Y PINTURA EN GENERAL", 305,
                    743, 0);
            reporte.texto("FECHA: " + ord.getFecha().toString(), bf, BaseColor.BLACK, 7, 495, 743);
            reporte.contenido.rectangle(527, 742, 50, 0);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "COMPRA Y VENTA DE REFACCIONES", 305,
                    733, 0);
            reporte.texto("SEGURO: ", bf, BaseColor.BLACK, 8, 487, 733);
            reporte.contenido.rectangle(527, 732, 50, 0);
            reporte.texto("OT: " + ord.getIdOrden(), bf, BaseColor.BLACK, 8, 511, 723);
            reporte.contenido.rectangle(527, 722, 50, 0);
            String cliente = ord.getClientes().getNombre();
            if (cliente.length() > 58)
                cliente = cliente.substring(0, 58);
            reporte.texto("ASEGURADO: " + cliente, bf, BaseColor.BLACK, 7, 135, 723);
            reporte.contenido.rectangle(190, 722, 288, 0);
            if (ord.getNoSerie() != null)
                reporte.texto("SERIE: " + ord.getNoSerie(), bf, BaseColor.BLACK, 7, 38, 713);
            else
                reporte.texto("SERIE: ", bf, BaseColor.BLACK, 7, 38, 713);

            reporte.contenido.rectangle(65, 712, 72, 0);
            reporte.texto("MARCA: " + ord.getMarca().getMarcaNombre(), bf, BaseColor.BLACK, 7, 145, 713);
            reporte.contenido.rectangle(177, 712, 145, 0);
            reporte.texto("TIPO: " + ord.getTipo().getTipoNombre(), bf, BaseColor.BLACK, 7, 330, 713);
            reporte.contenido.rectangle(352, 712, 125, 0);
            if (ord.getModelo() != null)
                reporte.texto("MODELO: " + ord.getModelo(), bf, BaseColor.BLACK, 7, 488, 713);
            else
                reporte.texto("MODELO: ", bf, BaseColor.BLACK, 7, 488, 713);

            reporte.finTexto();

            //agregamos renglones vacios para dejar un espacio
            reporte.agregaObjeto(new Paragraph(" "));
            reporte.agregaObjeto(new Paragraph(" "));
            reporte.agregaObjeto(new Paragraph(" "));

            float tam[] = new float[] { 350, 50, 50, 200, 350, 50, 50, 200 };
            Font font = new Font(Font.FontFamily.HELVETICA, 7, Font.BOLD);
            PdfPTable tabla = reporte.crearTabla(8, tam, 100, Element.ALIGN_LEFT);
            BaseColor cabecera = BaseColor.GRAY;
            BaseColor contenido = BaseColor.WHITE;
            int centro = Element.ALIGN_CENTER;
            int izquierda = Element.ALIGN_LEFT;
            int derecha = Element.ALIGN_RIGHT;
            tabla.addCell(reporte.celda("INVENTARIO DE UNIDADES", font, BaseColor.LIGHT_GRAY, centro, 8, 1,
                    Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("DESCRIPCIN", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("SI", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("NO", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("OBSERVACIONES", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("DESCRIPCIN", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("SI", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("NO", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda("OBSERVACIONES", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));

            //agregamos los renglones
            String descripcion[][] = { { "I SECCIN FRENTE", "EXTINGUIDOR" }, { "DEFENSA O ALMA", "LUZ INTERIOR" },
                    { "CUBIERTAS DEFENSA", "PALANCA VELOCIDADES" }, { "COFRE", "SELECTOR VELOCIDADES" },
                    { "BISAGRA COFRE", "VESTIDURA" }, { "SALPICADERAS", "III DORMITORIO EXT." },
                    { "BISELES", "TOLDO" }, { "FAROS", "DEFLECTOR TOLDO" }, { "DIRECCIONALES", "CONCHA LATERALES" },
                    { "MOLDURAS", "LIENZO COSTADO" }, { "PARRILLA", "PUERTA COST. SUP." },
                    { "EMBLEMAS", "PUERTA COST. INF." }, { "EXT. SALPICADERA", "MANIJA CHAPA" },
                    { "II CABINA EXT.", "PASAMANOS" }, { "ZEPPELIN", "DEFLECTOR LATERAL" },
                    { "CORNETA AIRE ELECT.", "LIENZO TRASERO" }, { "PARABRISAS Y HULE", "INTERIOR" },
                    { "BRAZOS Y PLUMAS IMP.", "CORTINA" }, { "DEFLECTOR TOLDO", "COLCHN" },
                    { "ESPEJO LATERAL", "CALEFACCIN" }, { "PUERTAS", "LUZ INTERIOR" },
                    { "CRISTAL PUERTA", "VESTIDURA" }, { "MANIJA", "GATO Y HERRAMIENTA" },
                    { "PASAMANOS", "LLAVE DE RUEDAS" }, { "DEFLECTOR LATERAL", "SEALES EMERGENCIA" },
                    { "CRISTAL MEDALLN", "IV ACCCESORIOS Y MOTOR" }, { "INTERIOR", "CAJA BATERIA Y TAPA" },
                    { "TOLDO", "ACUMULADOR" }, { "CONSOLA TOLDO", "TANQUES COMBUSTIBLE" },
                    { "CONSOLA TABLERO", "ESTRIBOS TANQUES" }, { "APARATOS TABLERO", "FALDONES TANQUES" },
                    { "RELOJ", "TANQUES AIRE" }, { "CONTROLES TABLERO", "PUNTA ESCAPE" },
                    { "GUANTERA", "MALLA SILENCIADOR" }, { "CENICERO", "SILENCIADOR" },
                    { "ENCENDEDOR", "QUINTA RUEDA" }, { "C.B.", "EJE DEL." }, { "RADIO ESTREO", "MUELLES DEL." },
                    { "BOCINAS", "BRAZOS DE DIRECCIN" }, { "VOLANTE", "CAJA DE DIRECCIN" },
                    { "PALANCA DIRECCIONALES", "CONDENSADOR" }, { "ASIENTOS", "ENFRIADOR DE AIRE" },
                    { "CINTURONES SEGURIDAD", "POST ENFRIADOR" }, { "MANIJAS", "RADIADOR" },
                    { "TOLVA RADIADOR", "ALTERNADOR" }, { "MANGUERAS", "BANDAS DE MOTOR" },
                    { "VENTILADOR/FAN CLUTCH", "BAYONETA ACEITE DE MOTOR" }, { "DAMPER", "TURBO" },
                    { "TAPA DISTRIBUCIN", "DEPSITO AGUA" }, { "POLEA DE MARCAS", "FRENO MOTOR" },
                    { "BOMBA INYECCIN", "GPS" }, { "TARJETA IAVE", "CARDAN" }, { "COMPUTADORA", "YUGO" },
                    { "COMPRESOR A/C", "CRUCETA" }, { "COMPRESOR AIRE", "INTERDIFERENCIALES" },
                    { "BOMBA DIRECCIN HID.", "DIFERENCIAL(1)(2)" },
                    { "DEPSITO DIRECCIN HID.", "FLECHA DIFERENCIALES" },
                    { "BAYONETA ACEITE HID.", "SUSPENSIN TRASERA" }, { "PURIFICADOR", "C?MARAS DE AIRE" },
                    { "MONO BLOCK", "TOMA DE FUERZA VOLTEO" }, { "CARTER", "TANQUE ACEITE HID. VOLTEO" },
                    { "CONCHA MOTOR", "SOPORTE SILENCIADOR" }, { "MARCHA", "ENGOMADOS" },
                    { "CLUTCH", "PLACA DELANTERA" }, { "CAMPANA TRANSMISIN", "PLACA TRASERA" },
                    { "TRANSMISIN", "KILOMETRAJE" }, { "BOMBA DE AGUA", "LODERAS INTERNAS" },
                    { "BOMBA DE ACEITE", "LODERAS TRASERAS" },

            };
            for (int i = 0; i < 68; i++) {
                tabla.addCell(
                        reporte.celda(descripcion[i][0], font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(
                        reporte.celda(descripcion[i][1], font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("", font, contenido, izquierda, 0, 1, Rectangle.RECTANGLE));
            }
            tabla.addCell(reporte.celda(" ", font, contenido, centro, 0, 1, Rectangle.NO_BORDER));
            tabla.addCell(reporte.celda(" ", font, contenido, centro, 7, 1, Rectangle.BOTTOM));
            tabla.addCell(reporte.celda("herramientas:", font, contenido, derecha, 0, 1, Rectangle.NO_BORDER));
            tabla.addCell(reporte.celda(" ", font, contenido, centro, 7, 1, Rectangle.RECTANGLE));
            tabla.addCell(reporte.celda(" ", font, contenido, derecha, 0, 1, Rectangle.NO_BORDER));
            tabla.addCell(reporte.celda(" ", font, contenido, centro, 7, 1, Rectangle.RECTANGLE));

            reporte.agregaObjeto(tabla);
            reporte.inicioTexto();
            reporte.contenido.setFontAndSize(bf, 14);
            reporte.contenido.setColorFill(BaseColor.BLACK);
            //reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, con.getEmpresa(), 305, 755, 0);
            reporte.contenido.setFontAndSize(bf, 8);
            reporte.contenido.setColorFill(BaseColor.BLACK);
            reporte.contenido.rectangle(527, 712, 50, 0);

            reporte.contenido.roundRectangle(30, 440, 550, 150, 5);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "COMBUSTIBLE", 530, 520, 270);//445
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "LLANTAS", 200, 575, 0);//400

            reporte.contenido.rectangle(70, 30, 215, 0);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "NOMBRE Y FIRMA DEL CLIENTE", 185, 20,
                    0);
            reporte.contenido.rectangle(320, 30, 215, 0);
            reporte.contenido.showTextAligned(PdfContentByte.ALIGN_CENTER, "OPERADOR DE GRUA", 430, 20, 0);
            reporte.finTexto();
            //*****agregamos los tanques de combustible
            reporte.agregaObjeto(reporte.crearImagen("imagenes/nivel.jpg", 350, -145, 25));
            reporte.agregaObjeto(reporte.crearImagen("imagenes/llantas.jpg", -125, -145, 65));

            reporte.cerrar();
            reporte.visualizar2("reportes/" + ord.getIdOrden() + "/" + valor + "-invTRacto.pdf");

        } catch (Exception e) {
            System.out.println(e);
            JOptionPane.showMessageDialog(this, "No se pudo realizar el reporte si el archivo esta abierto");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_inventario_formatoActionPerformed

    private void b_inventario_cargaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_inventario_cargaActionPerformed
        // TODO add your handling code here:
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            File destino = null;
            int estado = selector.showOpenDialog(null);
            File archivo = selector.getSelectedFile();
            if (estado == 0) {
                if (archivo.exists()) {
                    Date fecha_orden = new Date();
                    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");//YYYY-MM-DD HH:MM:SS
                    String valor = dateFormat.format(fecha_orden);
                    String[] aux = valor.split(" ");
                    String[] fecha = aux[0].split("-");
                    String[] hora = aux[1].split(":");

                    Calendar calendario = Calendar.getInstance();
                    calendario.set(Integer.parseInt(fecha[2]), Integer.parseInt(fecha[1]) - 1,
                            Integer.parseInt(fecha[0]), Integer.parseInt(hora[0]), Integer.parseInt(hora[1]),
                            Integer.parseInt(hora[2]));

                    String[] ext = archivo.getName().split("\\.");
                    String nom = "inventario";
                    if (ext.length > 0)
                        nom += "." + ext[ext.length - 1];

                    File folder = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/");
                    folder.mkdirs();
                    destino = new File(
                            ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/" + nom);

                    int opt = 1;
                    if (destino.exists())
                        opt = JOptionPane.showConfirmDialog(this, "Ya existe un archivo Desea remplazarlo?");
                    else
                        opt = 0;
                    if (opt == 0) {
                        try {
                            InputStream in = new FileInputStream(archivo);
                            OutputStream out = new FileOutputStream(destino);
                            byte[] buf = new byte[1024];
                            int len;
                            while ((len = in.read(buf)) > 0)
                                out.write(buf, 0, len);
                            in.close();
                            out.close();
                            session.beginTransaction().begin();
                            orden_act = (Orden) session.get(Orden.class, orden_act.getIdOrden());
                            orden_act.setInventario(nom);
                            session.saveOrUpdate(orden_act);

                            //creamos las notificaciones**************
                            Acceso[] accesos = (Acceso[]) orden_act.getClientes().getAccesos()
                                    .toArray(new Acceso[0]);
                            if (accesos != null) {
                                String notificaciones = "{\"NOTIFICACIONES\":[";
                                for (int a = 0; a < accesos.length; a++) {
                                    Notificacion nueva = new Notificacion();
                                    nueva.setMensaje("OT:" + orden_act.getIdOrden() + " Inventario de Ingreso");
                                    nueva.setExtra("");
                                    nueva.setIntentos(0);
                                    nueva.setVisto(false);
                                    nueva.setAcceso(accesos[0]);
                                    Integer id = (Integer) session.save(nueva);
                                    nueva = (Notificacion) session.get(Notificacion.class, id);
                                    nueva.setExtra(
                                            "{\"VENTANA\":\"MuestraPDF\",\"ID_ORDEN\":\"" + orden_act.getIdOrden()
                                                    + "\",\"ID_NOTIFICACION\":\"" + id + "\",\"ID_USUARIO\":\""
                                                    + accesos[0].getIdAcceso() + "\",\"ARCHIVO\":\"" + nom + "\"}");
                                    session.update(nueva);
                                    notificaciones += "{\"ID\":\"" + id + "\"}";
                                    if (a + 1 < accesos.length)
                                        notificaciones += ",";
                                }
                                notificaciones += "]}";
                                session.beginTransaction().commit();
                                try {
                                    PeticionPost service = new PeticionPost(
                                            "http://tracto.ddns.net:8085/integral/service/api.php");
                                    service.add("METODO", "NOTIFICACION.MENSAJE");
                                    service.add("NOTIFICACIONES", notificaciones);
                                    System.out.println(service.getRespueta());
                                    JOptionPane.showMessageDialog(this,
                                            "El archivo fue cargado con exito y se notific al Cliente.");
                                } catch (Exception e) {
                                    System.out.println("error");
                                    JOptionPane.showMessageDialog(this,
                                            "El archivo fue cargado con exito pero no se pudo notificar al cliente.");
                                }
                            } else {
                                session.beginTransaction().commit();
                                JOptionPane.showMessageDialog(this, "Se archivo fue cargado con exito");
                            }

                            //****************************************
                            agregaArchivo(nom, b_inventario);
                        } catch (Exception e) {
                            e.printStackTrace();
                            javax.swing.JOptionPane.showMessageDialog(null,
                                    "Error no se pudo eliminar el archivo NO Error:3");
                        }
                    }
                }
            }
        } catch (Exception ioe) {
            ioe.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo cargar el archivo");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_inventario_cargaActionPerformed

    private void b_cotizacion_cargaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_cotizacion_cargaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_b_cotizacion_cargaActionPerformed

    private void b_desgaste_formatoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_desgaste_formatoActionPerformed
        // TODO add your handling code here:
        h = new Herramientas(usr, 0);
        h.session(sessionPrograma);
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            Orden ord = (Orden) session.get(Orden.class, orden_act.getIdOrden());

            Date fecha = new Date();
            DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
            String valor = dateFormat.format(fecha);
            File folder = new File("reportes/" + ord.getIdOrden());
            folder.mkdirs();
            PdfReader reader = new PdfReader("imagenes/Desgaste.pdf");
            PdfStamper stamp = new PdfStamper(reader,
                    new FileOutputStream("reportes/" + ord.getIdOrden() + "/" + valor + "-DESGASTE.pdf"));
            PdfContentByte cb = stamp.getUnderContent(1);
            AcroFields fdfDoc = stamp.getAcroFields();
            BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);
            Image img;
            cb.beginText();

            try {
                fdfDoc.setField("CLIENTE", ord.getClientes().getNombre());
            } catch (Exception e) {
                fdfDoc.setField("NOMBRE", "");
            }
            try {
                fdfDoc.setField("ORDEN", "" + ord.getIdOrden());
            } catch (Exception e) {
                fdfDoc.setField("ORDEN", "");
            }
            try {
                fdfDoc.setField("ECO", ord.getNoEconomico());
            } catch (Exception e) {
                fdfDoc.setField("ECO", "");
            }
            try {
                fdfDoc.setField("SERIE", ord.getNoMotor());
            } catch (Exception e) {
                fdfDoc.setField("SERIE", "");
            }
            try {
                fdfDoc.setField("VIN", ord.getNoSerie());
            } catch (Exception e) {
                fdfDoc.setField("VIN", "");
            }
            cb.endText();
            stamp.close();
            PDF reporte = new PDF();
            reporte.visualizar2("reportes/" + ord.getIdOrden() + "/" + valor + "-DESGASTE.pdf");
            reporte.cerrar();
        } catch (Exception e) {
            System.out.println(e);
            JOptionPane.showMessageDialog(this, "No se pudo realizar el reporte si el archivo esta abierto");
        } finally {
            if (session != null)
                if (session.isOpen())
                    session.close();
        }
    }//GEN-LAST:event_b_desgaste_formatoActionPerformed

    private void b_desgaste_cargaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_desgaste_cargaActionPerformed
        // TODO add your handling code here:
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            File destino = null;
            int estado = selector.showOpenDialog(null);
            File archivo = selector.getSelectedFile();
            if (estado == 0) {
                if (archivo.exists()) {
                    Date fecha_orden = new Date();
                    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");//YYYY-MM-DD HH:MM:SS
                    String valor = dateFormat.format(fecha_orden);
                    String[] aux = valor.split(" ");
                    String[] fecha = aux[0].split("-");
                    String[] hora = aux[1].split(":");

                    Calendar calendario = Calendar.getInstance();
                    calendario.set(Integer.parseInt(fecha[2]), Integer.parseInt(fecha[1]) - 1,
                            Integer.parseInt(fecha[0]), Integer.parseInt(hora[0]), Integer.parseInt(hora[1]),
                            Integer.parseInt(hora[2]));

                    String[] ext = archivo.getName().split("\\.");
                    String nom = "desgaste";
                    if (ext.length > 0)
                        nom += "." + ext[ext.length - 1];

                    File folder = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/");
                    folder.mkdirs();
                    destino = new File(
                            ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/" + nom);

                    int opt = 1;
                    if (destino.exists())
                        opt = JOptionPane.showConfirmDialog(this, "Ya existe un archivo Desea remplazarlo?");
                    else
                        opt = 0;
                    if (opt == 0) {
                        try {
                            InputStream in = new FileInputStream(archivo);
                            OutputStream out = new FileOutputStream(destino);
                            byte[] buf = new byte[1024];
                            int len;
                            while ((len = in.read(buf)) > 0)
                                out.write(buf, 0, len);
                            in.close();
                            out.close();
                            session.beginTransaction().begin();
                            orden_act = (Orden) session.get(Orden.class, orden_act.getIdOrden());
                            orden_act.setInventario(nom);
                            session.saveOrUpdate(orden_act);

                            //creamos las notificaciones**************
                            Acceso[] accesos = (Acceso[]) orden_act.getClientes().getAccesos()
                                    .toArray(new Acceso[0]);
                            if (accesos != null) {
                                String notificaciones = "{\"NOTIFICACIONES\":[";
                                for (int a = 0; a < accesos.length; a++) {
                                    Notificacion nueva = new Notificacion();
                                    nueva.setMensaje("OT:" + orden_act.getIdOrden()
                                            + " Desgaste no atribuible al siniestro");
                                    nueva.setExtra("");
                                    nueva.setIntentos(0);
                                    nueva.setVisto(false);
                                    nueva.setAcceso(accesos[0]);
                                    Integer id = (Integer) session.save(nueva);
                                    nueva = (Notificacion) session.get(Notificacion.class, id);
                                    nueva.setExtra(
                                            "{\"VENTANA\":\"MuestraPDF\",\"ID_ORDEN\":\"" + orden_act.getIdOrden()
                                                    + "\",\"ID_NOTIFICACION\":\"" + id + "\",\"ID_USUARIO\":\""
                                                    + accesos[0].getIdAcceso() + "\",\"ARCHIVO\":\"" + nom + "\"}");
                                    session.update(nueva);
                                    notificaciones += "{\"ID\":\"" + id + "\"}";
                                    if (a + 1 < accesos.length)
                                        notificaciones += ",";
                                }
                                notificaciones += "]}";
                                session.beginTransaction().commit();
                                try {
                                    PeticionPost service = new PeticionPost(
                                            "http://tracto.ddns.net:8085/integral/service/api.php");
                                    service.add("METODO", "NOTIFICACION.MENSAJE");
                                    service.add("NOTIFICACIONES", notificaciones);
                                    System.out.println(service.getRespueta());
                                    JOptionPane.showMessageDialog(this,
                                            "El archivo fue cargado con exito y se notific al Cliente.");
                                } catch (Exception e) {
                                    System.out.println("error");
                                }
                                JOptionPane.showMessageDialog(this,
                                        "El archivo fue cargado con exito pero no se pudo notificar al cliente.");
                            } else {
                                session.beginTransaction().commit();
                                JOptionPane.showMessageDialog(this, "Se archivo fue cargado con exito");
                            }

                            //****************************************
                            agregaArchivo(nom, b_desgaste);
                        } catch (Exception e) {
                            e.printStackTrace();
                            javax.swing.JOptionPane.showMessageDialog(null,
                                    "Error no se pudo eliminar el archivo NO Error:3");
                        }
                    }
                }
            }
        } catch (Exception ioe) {
            ioe.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo cargar el archivo");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_desgaste_cargaActionPerformed

    private void b_pago_formatoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_pago_formatoActionPerformed
        // TODO add your handling code here:
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            Orden ord = (Orden) session.get(Orden.class, orden_act.getIdOrden());
            Configuracion con = (Configuracion) session.get(Configuracion.class, 1);
            Date fecha = new Date();
            DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyyHH-mm-ss");//YYYY-MM-DD HH:MM:SS
            String valor = dateFormat.format(fecha);

            String formato = "PagoAXA.pdf";//ord.getCompania().getFormatoPago();
            File folder = new File("reportes/" + ord.getIdOrden());
            folder.mkdirs();

            PdfReader reader = new PdfReader("imagenes/" + formato);
            PdfStamper stamp = new PdfStamper(reader,
                    new FileOutputStream("reportes/" + ord.getIdOrden() + "/" + valor + "-Pago.pdf"));
            PdfContentByte cb = stamp.getUnderContent(1);
            AcroFields fdfDoc = stamp.getAcroFields();

            cb.beginText();
            //IMAGEN
            try {
                Image img = Image.getInstance("imagenes/" + con.getLogo());
                img.setAbsolutePosition(25, 710);
                img.scaleAbsoluteWidth(75);
                img.scaleAbsoluteHeight(50);
                cb.addImage(img, true);
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                Image img_1 = Image.getInstance(ord.getCompania().getFoto());
                img_1.setAbsolutePosition(500, 735);
                img_1.scaleAbsoluteWidth(80);
                img_1.scaleAbsoluteHeight(50);
                cb.addImage(img_1, true);
            } catch (Exception e) {
                e.printStackTrace();
            }
            Foto foto = (Foto) session.createCriteria(Foto.class)
                    .add(Restrictions.eq("orden.idOrden", orden_act.getIdOrden())).addOrder(Order.desc("fecha"))
                    .setMaxResults(1).uniqueResult();
            if (foto != null) {
                try {
                    Image img_2 = Image
                            .getInstance("ordenes/" + ord.getIdOrden() + "/miniatura/" + foto.getDescripcion());
                    img_2.setAbsolutePosition(480, 558);
                    img_2.scaleAbsoluteWidth(90);
                    img_2.scaleAbsoluteHeight(50);
                    cb.addImage(img_2, true);
                } catch (Exception e) {
                }
            }

            //NOMBRE DEL TALLER
            if (con.getEmpresa() != null)
                fdfDoc.setField("NombreEmpresa", con.getEmpresa());

            //DIRECCION DEL TALLER 
            String direccion = "";
            if (con.getDireccion() != null)
                direccion += con.getDireccion() + " ";
            if (con.getNo() != null)
                direccion += con.getNo() + " ";
            if (con.getColonia() != null)
                direccion += con.getColonia();
            direccion = direccion.toUpperCase();
            fdfDoc.setField("DireccionEmpresa", direccion);

            //Municipio, Estado, CP
            String municipio = "";
            if (con.getMunicipio() != null)
                municipio += con.getMunicipio() + " ";
            if (con.getEstado() != null)
                municipio += con.getEstado() + " ";
            if (con.getCp() != null)
                municipio += con.getCp();
            municipio = municipio.toUpperCase();
            fdfDoc.setField("ColoniaEmpresa", municipio);

            //Pagina Web y Telefonos
            fdfDoc.setField("SitioEmpresa", "tracto.ddns.net");
            fdfDoc.setField("TelefonoEmpresa", "(722) 199 24 04 / 275 19 45");

            //Datos de la compaia
            fdfDoc.setField("Aseguradora1", ord.getCompania().getSocial());
            if (ord.getCompania().getDireccion() != null)
                fdfDoc.setField("Aseguradora2", ord.getCompania().getDireccion());
            if (ord.getCompania().getColonia() != null)
                fdfDoc.setField("Aseguradora3", ord.getCompania().getColonia());
            /*if(ord.getCompania().getComentarios()!=null)
                fdfDoc.setField("Extra", ord.getCompania().getComentarios());*/

            //Orden de trabajo
            fdfDoc.setField("Orden", "" + ord.getIdOrden());

            //FECHA INGRESO
            if (ord.getFecha() != null)
                fdfDoc.setField("FechaRecepcion", ord.getFecha().toString());

            //Marca
            fdfDoc.setField("Marca", ord.getMarca().getMarcaNombre());

            //Tipo
            fdfDoc.setField("Modelo", "" + ord.getTipo().getTipoNombre());

            //Placas
            if (ord.getNoPlacas() != null)
                fdfDoc.setField("Placas", "" + ord.getNoPlacas());

            //Poliza
            if (ord.getPoliza() != null)
                fdfDoc.setField("Poliza", "" + ord.getPoliza());

            //Siniestro
            if (ord.getSiniestro() != null)
                fdfDoc.setField("Siniestro", "" + ord.getSiniestro());

            //Datos cliente
            if (ord.getClientes() != null) {
                fdfDoc.setField("Nombre", ord.getClientes().getNombre());
                if (ord.getClientes().getContacto() != null)
                    fdfDoc.setField("Contacto", ord.getClientes().getContacto());
            }

            //Datos de atencion a clientes
            fdfDoc.setField("Tel1", "722 299 240 25");
            fdfDoc.setField("Id1", "52*167862*13");
            fdfDoc.setField("Email1", "atencionaclientes@tractoservicio.com");
            fdfDoc.setField("Wat1", "722 299 240 25");

            float tam[] = new float[] { 160, 80, 130, 170 };
            Font font = new Font(Font.FontFamily.HELVETICA, 7, Font.BOLD);
            PDF reporte = new PDF();
            PdfPTable tabla = reporte.crearTabla(4, tam, 100, Element.ALIGN_LEFT);
            tabla.setTotalWidth(tam);

            BaseColor cabecera = BaseColor.GRAY;
            BaseColor contenido = BaseColor.WHITE;
            int centro = Element.ALIGN_CENTER;
            int izquierda = Element.ALIGN_LEFT;
            int derecha = Element.ALIGN_RIGHT;

            if (formato.compareToIgnoreCase("PagoAXA.pdf") != 0) {
                tabla.addCell(reporte.celda("BANCO", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("NO CONVENIO", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(reporte.celda("N DE CUENTA", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));
                tabla.addCell(
                        reporte.celda("NOMBRE DE LA COMPAIA", font, cabecera, centro, 0, 1, Rectangle.RECTANGLE));

                Cuenta[] cuentas = (Cuenta[]) ord.getCompania().getCuentas().toArray(new Cuenta[0]);
                if (cuentas.length > 0) {
                    for (int i = 0; i < cuentas.length; i++) {
                        tabla.addCell(reporte.celda(cuentas[i].getBanco(), font, contenido, izquierda, 0, 1,
                                Rectangle.RECTANGLE));
                        tabla.addCell(reporte.celda(cuentas[i].getConvenio().toString(), font, contenido, izquierda,
                                0, 1, Rectangle.RECTANGLE));
                        tabla.addCell(reporte.celda(cuentas[i].getTransferencia(), font, contenido, izquierda, 0, 1,
                                Rectangle.RECTANGLE));
                        tabla.addCell(reporte.celda(cuentas[i].getNombre(), font, contenido, izquierda, 0, 1,
                                Rectangle.RECTANGLE));
                    }
                }

                tabla.completeRow();
                tabla.writeSelectedRows(0, -1, 40, 420, cb);
            }
            DecimalFormat formatoPorcentaje = new DecimalFormat("#,##0.00");
            formatoPorcentaje.setMinimumFractionDigits(2);

            cb.setTextMatrix(160, 466);
            BaseFont bf = BaseFont.createFont();
            cb.setFontAndSize(bf, 9);
            cb.showText("" + formatoPorcentaje.format(orden_act.getDeducible()));

            cb.setTextMatrix(450, 466);
            cb.showText("" + formatoPorcentaje.format(orden_act.getDemerito()));
            cb.endText();

            stamp.close();
            reporte.cerrar();
            reporte.visualizar2("reportes/" + ord.getIdOrden() + "/" + valor + "-Pago.pdf");

        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(this, "No se pudo realizar el reporte si el archivo esta abierto");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_pago_formatoActionPerformed

    private void b_pago_cargaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_pago_cargaActionPerformed
        // TODO add your handling code here:
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            File destino = null;
            int estado = selector.showOpenDialog(null);
            File archivo = selector.getSelectedFile();
            if (estado == 0) {
                if (archivo.exists()) {
                    Date fecha_orden = new Date();
                    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");//YYYY-MM-DD HH:MM:SS
                    String valor = dateFormat.format(fecha_orden);
                    String[] aux = valor.split(" ");
                    String[] fecha = aux[0].split("-");
                    String[] hora = aux[1].split(":");

                    Calendar calendario = Calendar.getInstance();
                    calendario.set(Integer.parseInt(fecha[2]), Integer.parseInt(fecha[1]) - 1,
                            Integer.parseInt(fecha[0]), Integer.parseInt(hora[0]), Integer.parseInt(hora[1]),
                            Integer.parseInt(hora[2]));

                    String[] ext = archivo.getName().split("\\.");
                    String nom = "pago";
                    if (ext.length > 0)
                        nom += "." + ext[ext.length - 1];

                    File folder = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/");
                    folder.mkdirs();
                    destino = new File(
                            ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/" + nom);

                    int opt = 1;
                    if (destino.exists())
                        opt = JOptionPane.showConfirmDialog(this, "Ya existe un archivo Desea remplazarlo?");
                    else
                        opt = 0;
                    if (opt == 0) {
                        try {
                            InputStream in = new FileInputStream(archivo);
                            OutputStream out = new FileOutputStream(destino);
                            byte[] buf = new byte[1024];
                            int len;
                            while ((len = in.read(buf)) > 0)
                                out.write(buf, 0, len);
                            in.close();
                            out.close();
                            session.beginTransaction().begin();
                            orden_act = (Orden) session.get(Orden.class, orden_act.getIdOrden());
                            orden_act.setInventario(nom);
                            session.saveOrUpdate(orden_act);

                            //creamos las notificaciones**************
                            Acceso[] accesos = (Acceso[]) orden_act.getClientes().getAccesos()
                                    .toArray(new Acceso[0]);
                            if (accesos != null) {
                                String notificaciones = "{\"NOTIFICACIONES\":[";
                                for (int a = 0; a < accesos.length; a++) {
                                    Notificacion nueva = new Notificacion();
                                    nueva.setMensaje("OT:" + orden_act.getIdOrden() + " Proceso de Pago");
                                    nueva.setExtra("");
                                    nueva.setIntentos(0);
                                    nueva.setVisto(false);
                                    nueva.setAcceso(accesos[0]);
                                    Integer id = (Integer) session.save(nueva);
                                    nueva = (Notificacion) session.get(Notificacion.class, id);
                                    nueva.setExtra(
                                            "{\"VENTANA\":\"MuestraPDF\",\"ID_ORDEN\":\"" + orden_act.getIdOrden()
                                                    + "\",\"ID_NOTIFICACION\":\"" + id + "\",\"ID_USUARIO\":\""
                                                    + accesos[0].getIdAcceso() + "\",\"ARCHIVO\":\"" + nom + "\"}");
                                    session.update(nueva);
                                    notificaciones += "{\"ID\":\"" + id + "\"}";
                                    if (a + 1 < accesos.length)
                                        notificaciones += ",";
                                }
                                notificaciones += "]}";
                                session.beginTransaction().commit();
                                try {
                                    PeticionPost service = new PeticionPost(
                                            "http://tracto.ddns.net:8085/integral/service/api.php");
                                    service.add("METODO", "NOTIFICACION.MENSAJE");
                                    service.add("NOTIFICACIONES", notificaciones);
                                    System.out.println(service.getRespueta());
                                    JOptionPane.showMessageDialog(this,
                                            "El archivo fue cargado con exito y se notific al Cliente.");
                                } catch (Exception e) {
                                    System.out.println("error");
                                }
                                JOptionPane.showMessageDialog(this,
                                        "El archivo fue cargado con exito pero no se pudo notificar al cliente.");
                            } else {
                                session.beginTransaction().commit();
                                JOptionPane.showMessageDialog(this, "Se archivo fue cargado con exito");
                            }

                            //****************************************
                            agregaArchivo(nom, b_pago);
                        } catch (Exception e) {
                            e.printStackTrace();
                            javax.swing.JOptionPane.showMessageDialog(null,
                                    "Error no se pudo eliminar el archivo NO Error:3");
                        }
                    }
                }
            }
        } catch (Exception ioe) {
            ioe.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo cargar el archivo");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_pago_cargaActionPerformed

    private void b_entrega_formatoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_entrega_formatoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_b_entrega_formatoActionPerformed

    private void b_entrega_cargaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_entrega_cargaActionPerformed
        // TODO add your handling code here:
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            File destino = null;
            int estado = selector.showOpenDialog(null);
            File archivo = selector.getSelectedFile();
            if (estado == 0) {
                if (archivo.exists()) {
                    Date fecha_orden = new Date();
                    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");//YYYY-MM-DD HH:MM:SS
                    String valor = dateFormat.format(fecha_orden);
                    String[] aux = valor.split(" ");
                    String[] fecha = aux[0].split("-");
                    String[] hora = aux[1].split(":");

                    Calendar calendario = Calendar.getInstance();
                    calendario.set(Integer.parseInt(fecha[2]), Integer.parseInt(fecha[1]) - 1,
                            Integer.parseInt(fecha[0]), Integer.parseInt(hora[0]), Integer.parseInt(hora[1]),
                            Integer.parseInt(hora[2]));

                    String[] ext = archivo.getName().split("\\.");
                    String nom = "entrega";
                    if (ext.length > 0)
                        nom += "." + ext[ext.length - 1];

                    File folder = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/");
                    folder.mkdirs();
                    destino = new File(
                            ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/" + nom);

                    int opt = 1;
                    if (destino.exists())
                        opt = JOptionPane.showConfirmDialog(this, "Ya existe un archivo Desea remplazarlo?");
                    else
                        opt = 0;
                    if (opt == 0) {
                        try {
                            InputStream in = new FileInputStream(archivo);
                            OutputStream out = new FileOutputStream(destino);
                            byte[] buf = new byte[1024];
                            int len;
                            while ((len = in.read(buf)) > 0)
                                out.write(buf, 0, len);
                            in.close();
                            out.close();
                            session.beginTransaction().begin();
                            orden_act = (Orden) session.get(Orden.class, orden_act.getIdOrden());
                            orden_act.setInventario(nom);
                            session.saveOrUpdate(orden_act);

                            //creamos las notificaciones**************
                            Acceso[] accesos = (Acceso[]) orden_act.getClientes().getAccesos()
                                    .toArray(new Acceso[0]);
                            if (accesos != null) {
                                String notificaciones = "{\"NOTIFICACIONES\":[";
                                for (int a = 0; a < accesos.length; a++) {
                                    Notificacion nueva = new Notificacion();
                                    nueva.setMensaje("OT:" + orden_act.getIdOrden() + " Check List de Entrega");
                                    nueva.setExtra("");
                                    nueva.setIntentos(0);
                                    nueva.setVisto(false);
                                    nueva.setAcceso(accesos[0]);
                                    Integer id = (Integer) session.save(nueva);
                                    nueva = (Notificacion) session.get(Notificacion.class, id);
                                    nueva.setExtra(
                                            "{\"VENTANA\":\"MuestraPDF\",\"ID_ORDEN\":\"" + orden_act.getIdOrden()
                                                    + "\",\"ID_NOTIFICACION\":\"" + id + "\",\"ID_USUARIO\":\""
                                                    + accesos[0].getIdAcceso() + "\",\"ARCHIVO\":\"" + nom + "\"}");
                                    session.update(nueva);
                                    notificaciones += "{\"ID\":\"" + id + "\"}";
                                    if (a + 1 < accesos.length)
                                        notificaciones += ",";
                                }
                                notificaciones += "]}";
                                session.beginTransaction().commit();
                                try {
                                    PeticionPost service = new PeticionPost(
                                            "http://tracto.ddns.net:8085/integral/service/api.php");
                                    service.add("METODO", "NOTIFICACION.MENSAJE");
                                    service.add("NOTIFICACIONES", notificaciones);
                                    System.out.println(service.getRespueta());
                                    JOptionPane.showMessageDialog(this,
                                            "El archivo fue cargado con exito y se notific al Cliente.");
                                } catch (Exception e) {
                                    System.out.println("error");
                                }
                                JOptionPane.showMessageDialog(this,
                                        "El archivo fue cargado con exito pero no se pudo notificar al cliente.");
                            } else {
                                session.beginTransaction().commit();
                                JOptionPane.showMessageDialog(this, "Se archivo fue cargado con exito");
                            }

                            //****************************************
                            agregaArchivo(nom, b_entrega);
                        } catch (Exception e) {
                            e.printStackTrace();
                            javax.swing.JOptionPane.showMessageDialog(null,
                                    "Error no se pudo eliminar el archivo NO Error:3");
                        }
                    }
                }
            }
        } catch (Exception ioe) {
            ioe.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo cargar el archivo");
        }
        if (session != null)
            if (session.isOpen())
                session.close();
    }//GEN-LAST:event_b_entrega_cargaActionPerformed

    private void b_inventarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_inventarioActionPerformed
        // TODO add your handling code here:
        try {
            File archivo = new File(
                    ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/" + b_inventario.getText());
            if (ruta.contains("http:") == true || ruta.contains("\\\\") == true || ruta.contains("//") == true
                    || ruta.contains("////") == true)
                Desktop.getDesktop().browse(getFileURI(ruta + "ordenes\\" + orden_act.getIdOrden()
                        + "\\archivos\\sm-logistics\\" + b_inventario.getText()));
            else {
                if (archivo.exists() == true)
                    Desktop.getDesktop().open(archivo);
                else
                    javax.swing.JOptionPane.showMessageDialog(null, "El archivo no existe");
            }
            archivo = null;
        } catch (Exception e) {
            e.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo abrir el archivo");
        }
    }//GEN-LAST:event_b_inventarioActionPerformed

    private void b_desgasteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_desgasteActionPerformed
        // TODO add your handling code here:
        try {
            File archivo = new File(
                    ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/" + b_desgaste.getText());
            if (ruta.contains("http:") == true || ruta.contains("\\\\") == true || ruta.contains("//") == true
                    || ruta.contains("////") == true)
                Desktop.getDesktop().browse(getFileURI(ruta + "ordenes\\" + orden_act.getIdOrden()
                        + "\\archivos\\sm-logistics\\" + b_desgaste.getText()));
            else {
                if (archivo.exists() == true)
                    Desktop.getDesktop().open(archivo);
                else
                    javax.swing.JOptionPane.showMessageDialog(null, "El archivo no existe");
            }
            archivo = null;
        } catch (Exception e) {
            e.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo abrir el archivo");
        }
    }//GEN-LAST:event_b_desgasteActionPerformed

    private void b_pagoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_pagoActionPerformed
        // TODO add your handling code here:
        try {
            File archivo = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/" + b_pago.getText());
            if (ruta.contains("http:") == true || ruta.contains("\\\\") == true || ruta.contains("//") == true
                    || ruta.contains("////") == true)
                Desktop.getDesktop().browse(getFileURI(ruta + "ordenes\\" + orden_act.getIdOrden()
                        + "\\archivos\\sm-logistics\\" + b_pago.getText()));
            else {
                if (archivo.exists() == true)
                    Desktop.getDesktop().open(archivo);
                else
                    javax.swing.JOptionPane.showMessageDialog(null, "El archivo no existe");
            }
            archivo = null;
        } catch (Exception e) {
            e.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo abrir el archivo");
        }
    }//GEN-LAST:event_b_pagoActionPerformed

    private void b_entregaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_entregaActionPerformed
        // TODO add your handling code here:
        try {
            File archivo = new File(
                    ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/" + b_entrega.getText());
            if (ruta.contains("http:") == true || ruta.contains("\\\\") == true || ruta.contains("//") == true
                    || ruta.contains("////") == true)
                Desktop.getDesktop().browse(getFileURI(ruta + "ordenes\\" + orden_act.getIdOrden()
                        + "\\archivos\\sm-logistics\\" + b_entrega.getText()));
            else {
                if (archivo.exists() == true)
                    Desktop.getDesktop().open(archivo);
                else
                    javax.swing.JOptionPane.showMessageDialog(null, "El archivo no existe");
            }
            archivo = null;
        } catch (Exception e) {
            e.printStackTrace();
            javax.swing.JOptionPane.showMessageDialog(null, "Error no se pudo abrir el archivo");
        }
    }//GEN-LAST:event_b_entregaActionPerformed

    private void b_guardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_b_guardarActionPerformed
        // TODO add your handling code here:
        if (t_solicitud.getText().trim().compareTo("") != 0) {
            try {
                PeticionPost service = new PeticionPost("http://tracto.ddns.net:8085/integral/service/api.php");
                service.add("METODO", "SOLICITUD.GET_SOLICITUD_SM");
                service.add("ID_SOLICITUD", t_solicitud.getText().trim());
                String respuesta = service.getRespueta();
                JSONObject resp = new JSONObject(respuesta);
                System.out.println(resp.get("ESTADO"));
                if (resp.get("ESTADO").toString().compareTo("1") == 0) {
                    /*Session session = HibernateUtil.getSessionFactory().openSession();
                    try
                    {
                    File f;
                    orden_act = (Orden)session.get(Orden.class, orden_act.getIdOrden());
                    orden_act.setIdSm();
                    session.update(orden_act);*/
                    JOptionPane.showMessageDialog(this, "La solicitud se enlazo a la orden!");
                    /*}catch(Exception e){
                     JOptionPane.showMessageDialog(this, "Error en la conexin al servidor, intente mas tarde.");
                    }*/
                } else
                    JOptionPane.showMessageDialog(this, "No fue posible encontrar la solicitud en el servidor");
            } catch (Exception e) {
                e.printStackTrace();
                JOptionPane.showMessageDialog(this, "Error en la conexin al servidor, intente mas tarde.");
            }
        }

    }//GEN-LAST:event_b_guardarActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton b_cotizacion_carga;
    private javax.swing.JButton b_desgaste;
    private javax.swing.JButton b_desgaste_carga;
    private javax.swing.JButton b_desgaste_formato;
    private javax.swing.JButton b_entrega;
    private javax.swing.JButton b_entrega_carga;
    private javax.swing.JButton b_entrega_formato;
    private javax.swing.JButton b_guardar;
    private javax.swing.JButton b_inventario;
    private javax.swing.JButton b_inventario_carga;
    private javax.swing.JButton b_inventario_formato;
    private javax.swing.JButton b_pago;
    private javax.swing.JButton b_pago_carga;
    private javax.swing.JButton b_pago_formato;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JTextField t_cotizacion_autorizado;
    private javax.swing.JTextField t_cotizacion_taller;
    private javax.swing.JTextField t_fecha_cliente;
    private javax.swing.JTextField t_solicitud;
    // End of variables declaration//GEN-END:variables

    public void buscaDatos() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        try {
            File f;
            usr = (Usuario) session.get(Usuario.class, usr.getIdUsuario());
            if (usr.getConsultaSm() || usr.getEditaSm()) {
                if (usr.getEditaSm()) {
                    b_inventario_carga.setEnabled(true);
                    b_desgaste_carga.setEnabled(true);
                    b_pago_carga.setEnabled(true);
                    b_entrega_carga.setEnabled(true);
                    b_cotizacion_carga.setEnabled(true);
                    b_guardar.setEnabled(true);
                    t_solicitud.setEnabled(true);
                }
                orden_act = (Orden) session.get(Orden.class, Integer.parseInt(ord));
                if (usr.getVerFechaCliente()) {
                    if (orden_act.getFechaCliente() != null)
                        t_fecha_cliente.setText(orden_act.getFechaCliente().toString());
                    else
                        t_fecha_cliente.setText("Pendiente");
                } else {
                    if (orden_act.getFechaTaller() != null)
                        t_fecha_cliente.setText(orden_act.getFechaTaller().toString());
                    else
                        t_fecha_cliente.setText("Pendiente");
                }

                File folder = new File(ruta + "ordenes/" + orden_act.getIdOrden() + "/archivos/sm-logistics/");
                folder.mkdirs();

                if (orden_act.getInventario() != null) {
                    try {
                        String nombre = orden_act.getInventario();
                        agregaArchivo(nombre, b_inventario);
                    } catch (Exception e) {
                    }
                }

                if (orden_act.getDesgaste() != null) {
                    try {
                        String nombre = orden_act.getDesgaste();
                        agregaArchivo(nombre, b_desgaste);
                    } catch (Exception e) {
                    }
                }

                if (orden_act.getPago() != null) {
                    try {
                        String nombre = orden_act.getPago();
                        agregaArchivo(nombre, b_pago);
                    } catch (Exception e) {
                    }
                }
                if (orden_act.getEntrega() != null) {
                    try {
                        String nombre = orden_act.getEntrega();
                        agregaArchivo(nombre, b_entrega);
                    } catch (Exception e) {
                    }
                }
            } else {
                JOptionPane.showMessageDialog(null, "Acceso denegado!");
            }
        } catch (Exception e) {
            System.out.println(e);
            this.setVisible(false);
        }
        if (session != null)
            if (session.isOpen() == true)
                session.close();
    }

    //generate uri according to the filePath
    private URI getFileURI(String filePath) {
        URI uri = null;
        filePath = filePath.trim();
        if (filePath.indexOf("http") == 0 || filePath.indexOf("\\") == 0) {
            if (filePath.indexOf("\\") == 0)
                filePath = "file:" + filePath;
            try {
                filePath = filePath.replaceAll(" ", "%20");
                URL url = new URL(filePath);
                uri = url.toURI();
            } catch (MalformedURLException ex) {
                ex.printStackTrace();
            } catch (URISyntaxException ex) {
                ex.printStackTrace();
            }
        } else {
            File file = new File(filePath);
            uri = file.toURI();
        }
        return uri;
    }

    void agregaArchivo(String nombre, JButton bt) {
        if (nombre.contains(".pdf") || nombre.contains(".PDF"))
            bt.setIcon(new ImageIcon("imagenes/pdf.png"));
        else {
            if (nombre.contains(".docx") || nombre.contains(".DOCX"))
                bt.setIcon(new ImageIcon("imagenes/word.png"));
            else
                bt.setIcon(new ImageIcon("imagenes/desconocido.png"));
        }
        bt.setText(nombre);
    }
}