Пример #1
0
void dspVendorAPHistory::sFillList()
{
  _vendhist->clear();

  if (!checkParameters())
    return;

  q.prepare( "SELECT apopen_id, -1 AS applyid, 0 AS type,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apopen_docnumber AS docnumber,"
             "       formatBoolYN(apopen_open) AS f_open,"
             "       CASE WHEN (apopen_doctype='V') THEN :voucher"
             "            WHEN (apopen_doctype='C') THEN :creditMemo"
             "            WHEN (apopen_doctype='D') THEN :debitMemo"
             "            ELSE :other"
             "       END AS documenttype,"
             "       apopen_invcnumber AS invoicenumber,"
             "       apopen_ponumber AS ponumber,"
             "       apopen_docdate AS docdate, apopen_duedate AS duedate, apopen_amount AS amount,"
             "       (apopen_amount - apopen_paid) AS balance,"
             "       currconcat(apopen_curr_id) AS currAbbr,"
             "       CASE WHEN (apopen_doctype='C') THEN apopen_amount / apopen_curr_rate * -1.0"
             "            ELSE apopen_amount / apopen_curr_rate"
             "       END AS base_amount,"
             "       CASE WHEN (apopen_doctype='C') THEN (apopen_amount - apopen_paid) / apopen_curr_rate * -1.0"
             "            ELSE (apopen_amount - apopen_paid) / apopen_curr_rate"
			 "       END AS base_balance,"
             "       'curr' AS amount_xtnumericrole,"
             "       'curr' AS base_amount_xtnumericrole,"
             "       'curr' AS base_amount_xttotalrole,"
             "       'curr' AS balance_xtnumericrole,"
             "       'curr' AS base_balance_xtnumericrole,"
             "       'curr' AS base_balance_xttotalrole,"
             "       0 AS xtindentrole "
             "FROM apopen "
             "WHERE ( (apopen_vend_id=:vend_id)" 
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "UNION "
             "SELECT apopen_id, apapply_target_apopen_id AS applyid, 1 AS type,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apapply_source_docnumber AS docnumber,"
             "       '' AS f_open,"
             "       CASE WHEN (apapply_source_doctype='C') THEN :creditMemo"
             "            WHEN (apapply_source_doctype='K') THEN :check"
             "            ELSE :other"
             "       END AS documenttype,"
             "       ' ' AS invoicenumber,"
             "       '' AS ponumber,"
             "       apapply_postdate AS docdate, CAST(NULL AS DATE) AS duedate,"
             "       apapply_amount AS amount,"
             "       0 AS balance,"
             "       currconcat(apapply_curr_id) AS currAbbr,"
             "       (apapply_amount / apopen_curr_rate) AS base_amount, "
             "       0 AS base_balance,"
             "       'curr' AS amount_xtnumericrole,"
             "       'curr' AS base_amount_xtnumericrole,"
             "       'curr' AS base_amount_xttotalrole,"
             "       'curr' AS balance_xtnumericrole,"
             "       'curr' AS base_balance_xtnumericrole,"
             "       'curr' AS base_balance_xttotalrole,"
             "       1 AS xtindentrole "
             "FROM apapply, apopen "
             "WHERE ( (apapply_target_apopen_id=apopen_id)"
             " AND (apapply_vend_id=:vend_id)"
             " AND (apopen_vend_id=:vend_id)"
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "UNION "
             "SELECT apopen_id, apapply_target_apopen_id AS applyid, 2 AS type,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apapply_target_docnumber AS docnumber,"
             "       '' AS f_open,"
             "       CASE WHEN (apapply_target_doctype='V') THEN :voucher"
             "            WHEN (apapply_target_doctype='D') THEN :debitMemo"
             "            ELSE :other"
             "       END AS documenttype,"
             "       apopen_invcnumber AS invoicenumber,"
             "       '' AS ponumber,"
             "       apapply_postdate AS docdate, CAST(NULL AS DATE) AS duedate,"
             "       apapply_amount AS amount,"
             "       0 AS balance,"
             "       currconcat(apapply_curr_id) AS currAbbr,"
             "       (apapply_amount / apopen_curr_rate) AS base_amount, "
             "       0 AS base_balance,"
             "       'curr' AS amount_xtnumericrole,"
             "       'curr' AS base_amount_xtnumericrole,"
             "       'curr' AS base_amount_xttotalrole,"
             "       'curr' AS balance_xtnumericrole,"
             "       'curr' AS base_balance_xtnumericrole,"
             "       'curr' AS base_balance_xttotalrole,"
             "       1 AS xtindentrole "
             "FROM apapply, apopen "
             "WHERE ( (apapply_source_doctype IN ('C', 'K'))"
             " AND (apapply_source_doctype=apopen_doctype)"
             " AND (apapply_source_docnumber=apopen_docnumber)"
             " AND (apapply_vend_id=:vend_id)"
             " AND (apopen_vend_id=:vend_id)"
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "ORDER BY sortdate, apopen_id, type;" );

  _dates->bindValue(q);
  q.bindValue(":creditMemo", tr("Credit Memo"));
  q.bindValue(":debitMemo", tr("Debit Memo"));
  q.bindValue(":check", tr("Check"));
  q.bindValue(":voucher", tr("Voucher"));
  q.bindValue(":other", tr("Other"));
  q.bindValue(":vend_id", _vend->id());
  q.exec();
  if (q.first())
    _vendhist->populate(q, true);

  sSearchInvoiceNum();
}
Пример #2
0
void dspVendorAPHistory::sFillList()
{
  display::sFillList();

  sSearchInvoiceNum();
}
Пример #3
0
void dspVendorAPHistory::sFillList()
{
  _vendhist->clear();

  if (!checkParameters())
    return;

  q.prepare( "SELECT 1 AS type, apopen_id, -1 AS applyid,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apopen_docnumber AS docnumber,"
             "       formatBoolYN(apopen_open) AS f_open,"
             "       CASE WHEN (apopen_doctype='V') THEN :voucher"
             "            WHEN (apopen_doctype='C') THEN :creditMemo"
             "            WHEN (apopen_doctype='D') THEN :debitMemo"
             "            ELSE :other"
             "       END AS documenttype,"
             "       apopen_invcnumber AS invoicenumber,"
             "       formatDate(apopen_docdate) AS f_docdate,"
             "       formatDate(apopen_duedate) AS f_duedate,"
             "       formatMoney(apopen_amount) AS f_amount,"
             "       formatMoney((apopen_amount - apopen_paid)) AS f_balance "
             "FROM apopen "
             "WHERE ( (apopen_vend_id=:vend_id)" 
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "UNION "
             "SELECT 2 AS type, apopen_id, apapply_source_apopen_id AS applyid,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apapply_source_docnumber AS docnumber,"
             "       '' AS f_open,"
             "       CASE WHEN (apapply_source_doctype='C') THEN :creditMemo"
             "            WHEN (apapply_source_doctype='K') THEN :check"
             "            ELSE :other"
             "       END AS documenttype,"
             "       ' ' AS invoicenumber,"
             "       formatDate(apapply_postdate) AS f_docdate,"
             "       '' AS f_duedate,"
             "       formatMoney(apapply_amount) AS f_amount,"
             "       '' AS f_balance "
             "FROM apapply, apopen "
             "WHERE ( (apapply_target_apopen_id=apopen_id)"
             " AND (apapply_vend_id=:vend_id)"
             " AND (apopen_vend_id=:vend_id)"
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "UNION "
             "SELECT 3 AS type, apopen_id, apapply_target_apopen_id AS applyid,"
             "       apopen_docdate AS sortdate, apopen_docnumber AS sortnumber,"
             "       apapply_target_docnumber AS docnumber,"
             "       '' AS f_open,"
             "       CASE WHEN (apapply_target_doctype='V') THEN :voucher"
             "            WHEN (apapply_target_doctype='D') THEN :debitMemo"
             "            ELSE :other"
             "       END AS documenttype,"
             "       apopen_invcnumber AS invoicenumber,"
             "       formatDate(apapply_postdate) AS f_docdate,"
             "       '' AS f_duedate,"
             "       formatMoney(apapply_amount) AS f_amount,"
             "       '' AS f_balance "
             "FROM apapply, apopen "
             "WHERE ( (apapply_source_doctype IN ('C', 'K'))"
             " AND (apapply_source_doctype=apopen_doctype)"
             " AND (apapply_source_docnumber=apopen_docnumber)"
             " AND (apapply_vend_id=:vend_id)"
             " AND (apopen_vend_id=:vend_id)"
             " AND (apopen_docdate BETWEEN :startDate AND :endDate) ) "

             "ORDER BY sortdate, apopen_id, type;" );

  _dates->bindValue(q);
  q.bindValue(":creditMemo", tr("C/M"));
  q.bindValue(":debitMemo", tr("D/M"));
  q.bindValue(":check", tr("Check"));
  q.bindValue(":voucher", tr("Voucher"));
  q.bindValue(":other", tr("Other"));
  q.bindValue(":vend_id", _vend->id());
  q.exec();
  if (q.first())
  {
    XTreeWidgetItem *document = NULL;
    do
    {
      if (q.value("type").toInt() == 1)
        document = new XTreeWidgetItem( _vendhist, document,
                                      q.value("apopen_id").toInt(), q.value("applyid").toInt(),
                                      q.value("f_open"), q.value("documenttype"),
                                      q.value("docnumber"), q.value("invoicenumber"),q.value("f_docdate"),
                                      q.value("f_duedate"), q.value("f_amount"),
                                      q.value("f_balance") );
      else if (document)
      {
        new XTreeWidgetItem( document,
                           -1, q.value("applyid").toInt(),
                           "", q.value("documenttype"),
                           q.value("docnumber"),q.value("invoicenumber"), q.value("f_docdate"),
                           "", q.value("f_amount") );
      }
    }
    while (q.next());
  }
  sSearchInvoiceNum();
}