예제 #1
0
  public static PaymentsModel emptyInstance() {

    PaymentsModel p = new PaymentsModel();

    p.m_iPayments = new Integer(0);
    p.m_dPaymentsTotal = new Double(0.0);
    p.m_lpayments = new ArrayList<PaymentsLine>();

    p.m_iSales = null;
    p.m_dSalesBase = null;
    p.m_dSalesTaxes = null;
    p.m_lsales = new ArrayList<SalesLine>();

    return p;
  }
예제 #2
0
  public static PaymentsModel loadInstance(AppView app) throws BasicException {

    PaymentsModel p = new PaymentsModel();

    // Propiedades globales
    p.m_sHost = app.getProperties().getHost();
    p.m_iSeq = app.getActiveCashSequence();
    p.m_dDateStart = app.getActiveCashDateStart();
    p.m_dDateEnd = null;

    // Pagos
    Object[] valtickets =
        (Object[])
            new StaticSentence(
                    app.getSession(),
                    "SELECT COUNT(*), SUM(PAYMENTS.TOTAL) "
                        + "FROM PAYMENTS, RECEIPTS "
                        + "WHERE PAYMENTS.RECEIPT = RECEIPTS.ID AND RECEIPTS.MONEY = ?",
                    SerializerWriteString.INSTANCE,
                    new SerializerReadBasic(new Datas[] {Datas.INT, Datas.DOUBLE}))
                .find(app.getActiveCashIndex());

    if (valtickets == null) {
      p.m_iPayments = new Integer(0);
      p.m_dPaymentsTotal = new Double(0.0);
    } else {
      p.m_iPayments = (Integer) valtickets[0];
      p.m_dPaymentsTotal = (Double) valtickets[1];
    }

    List l =
        new StaticSentence(
                app.getSession(),
                "SELECT PAYMENTS.PAYMENT, SUM(PAYMENTS.TOTAL) "
                    + "FROM PAYMENTS, RECEIPTS "
                    + "WHERE PAYMENTS.RECEIPT = RECEIPTS.ID AND RECEIPTS.MONEY = ? "
                    + "GROUP BY PAYMENTS.PAYMENT",
                SerializerWriteString.INSTANCE,
                new SerializerReadClass(
                    PaymentsModel.PaymentsLine
                        .class)) // new SerializerReadBasic(new Datas[] {Datas.STRING,
                                 // Datas.DOUBLE}))
            .list(app.getActiveCashIndex());

    if (l == null) {
      p.m_lpayments = new ArrayList();
    } else {
      p.m_lpayments = l;
    }

    // Sales
    Object[] recsales =
        (Object[])
            new StaticSentence(
                    app.getSession(),
                    "SELECT COUNT(DISTINCT RECEIPTS.ID), SUM(TICKETLINES.UNITS * TICKETLINES.PRICE) "
                        + "FROM RECEIPTS, TICKETLINES WHERE RECEIPTS.ID = TICKETLINES.TICKET AND RECEIPTS.MONEY = ?",
                    SerializerWriteString.INSTANCE,
                    new SerializerReadBasic(new Datas[] {Datas.INT, Datas.DOUBLE}))
                .find(app.getActiveCashIndex());
    if (recsales == null) {
      p.m_iSales = null;
      p.m_dSalesBase = null;
    } else {
      p.m_iSales = (Integer) recsales[0];
      p.m_dSalesBase = (Double) recsales[1];
    }

    // Taxes
    Object[] rectaxes =
        (Object[])
            new StaticSentence(
                    app.getSession(),
                    "SELECT SUM(TAXLINES.AMOUNT) "
                        + "FROM RECEIPTS, TAXLINES WHERE RECEIPTS.ID = TAXLINES.RECEIPT AND RECEIPTS.MONEY = ?",
                    SerializerWriteString.INSTANCE,
                    new SerializerReadBasic(new Datas[] {Datas.DOUBLE}))
                .find(app.getActiveCashIndex());
    if (rectaxes == null) {
      p.m_dSalesTaxes = null;
    } else {
      p.m_dSalesTaxes = (Double) rectaxes[0];
    }

    List<SalesLine> asales =
        new StaticSentence(
                app.getSession(),
                "SELECT TAXCATEGORIES.NAME, SUM(TAXLINES.AMOUNT) "
                    + "FROM RECEIPTS, TAXLINES, TAXES, TAXCATEGORIES WHERE RECEIPTS.ID = TAXLINES.RECEIPT AND TAXLINES.TAXID = TAXES.ID AND TAXES.CATEGORY = TAXCATEGORIES.ID "
                    + "AND RECEIPTS.MONEY = ?"
                    + "GROUP BY TAXCATEGORIES.NAME",
                SerializerWriteString.INSTANCE,
                new SerializerReadClass(PaymentsModel.SalesLine.class))
            .list(app.getActiveCashIndex());
    if (asales == null) {
      p.m_lsales = new ArrayList<SalesLine>();
    } else {
      p.m_lsales = asales;
    }

    return p;
  }
  private void m_jCloseCashActionPerformed(
      java.awt.event.ActionEvent evt) { // GEN-FIRST:event_m_jCloseCashActionPerformed
    // TODO add your handling code here:
    int res =
        JOptionPane.showConfirmDialog(
            this,
            AppLocal.getIntString("message.wannaclosecash"),
            AppLocal.getIntString("message.title"),
            JOptionPane.YES_NO_OPTION,
            JOptionPane.QUESTION_MESSAGE);
    if (res == JOptionPane.YES_OPTION) {

      Date dNow = new Date();

      try {
        // Cerramos la caja si esta pendiente de cerrar.
        if (m_App.getActiveCashDateEnd() == null) {
          new StaticSentence(
                  m_App.getSession(),
                  "UPDATE CLOSEDCASH SET DATEEND = ? WHERE HOST = ? AND MONEY = ?",
                  new SerializerWriteBasic(
                      new Datas[] {Datas.TIMESTAMP, Datas.STRING, Datas.STRING}))
              .exec(
                  new Object[] {dNow, m_App.getProperties().getHost(), m_App.getActiveCashIndex()});
        }
      } catch (BasicException e) {
        MessageInf msg =
            new MessageInf(
                MessageInf.SGN_NOTICE, AppLocal.getIntString("message.cannotclosecash"), e);
        msg.show(this);
      }

      try {
        // Creamos una nueva caja
        m_App.setActiveCash(
            UUID.randomUUID().toString(), m_App.getActiveCashSequence() + 1, dNow, null);

        // creamos la caja activa
        m_dlSystem.execInsertCash(
            new Object[] {
              m_App.getActiveCashIndex(),
              m_App.getProperties().getHost(),
              m_App.getActiveCashSequence(),
              m_App.getActiveCashDateStart(),
              m_App.getActiveCashDateEnd()
            });

        // ponemos la fecha de fin
        m_PaymentsToClose.setDateEnd(dNow);

        // print report
        printPayments("Printer.CloseCash");

        // Mostramos el mensaje
        JOptionPane.showMessageDialog(
            this,
            AppLocal.getIntString("message.closecashok"),
            AppLocal.getIntString("message.title"),
            JOptionPane.INFORMATION_MESSAGE);
      } catch (BasicException e) {
        MessageInf msg =
            new MessageInf(
                MessageInf.SGN_NOTICE, AppLocal.getIntString("message.cannotclosecash"), e);
        msg.show(this);
      }

      try {
        loadData();
      } catch (BasicException e) {
        MessageInf msg =
            new MessageInf(
                MessageInf.SGN_NOTICE, AppLocal.getIntString("label.noticketstoclose"), e);
        msg.show(this);
      }
    }
  } // GEN-LAST:event_m_jCloseCashActionPerformed
  private void loadData() throws BasicException {

    // Reset
    m_jSequence.setText(null);
    m_jMinDate.setText(null);
    m_jMaxDate.setText(null);
    m_jPrintCash.setEnabled(false);
    m_jCloseCash.setEnabled(false);
    m_jCount.setText(null); // AppLocal.getIntString("label.noticketstoclose");
    m_jCash.setText(null);

    m_jSales.setText(null);
    m_jSalesSubtotal.setText(null);
    m_jSalesTaxes.setText(null);
    m_jSalesTotal.setText(null);

    m_jTicketTable.setModel(new DefaultTableModel());
    m_jsalestable.setModel(new DefaultTableModel());

    // LoadData
    m_PaymentsToClose = PaymentsModel.loadInstance(m_App);

    // Populate Data
    m_jSequence.setText(m_PaymentsToClose.printSequence());
    m_jMinDate.setText(m_PaymentsToClose.printDateStart());
    m_jMaxDate.setText(m_PaymentsToClose.printDateEnd());

    if (m_PaymentsToClose.getPayments() != 0 || m_PaymentsToClose.getSales() != 0) {

      m_jPrintCash.setEnabled(true);
      m_jCloseCash.setEnabled(true);

      m_jCount.setText(m_PaymentsToClose.printPayments());
      m_jCash.setText(m_PaymentsToClose.printPaymentsTotal());

      m_jSales.setText(m_PaymentsToClose.printSales());
      m_jSalesSubtotal.setText(m_PaymentsToClose.printSalesBase());
      m_jSalesTaxes.setText(m_PaymentsToClose.printSalesTaxes());
      m_jSalesTotal.setText(m_PaymentsToClose.printSalesTotal());
    }

    m_jTicketTable.setModel(m_PaymentsToClose.getPaymentsModel());

    TableColumnModel jColumns = m_jTicketTable.getColumnModel();
    jColumns.getColumn(0).setPreferredWidth(200);
    jColumns.getColumn(0).setResizable(false);
    jColumns.getColumn(1).setPreferredWidth(100);
    jColumns.getColumn(1).setResizable(false);

    m_jsalestable.setModel(m_PaymentsToClose.getSalesModel());

    jColumns = m_jsalestable.getColumnModel();
    jColumns.getColumn(0).setPreferredWidth(200);
    jColumns.getColumn(0).setResizable(false);
    jColumns.getColumn(1).setPreferredWidth(100);
    jColumns.getColumn(1).setResizable(false);
  }