Revision: 1979
http://postbooks.svn.sourceforge.net/postbooks/?rev=1979&view=rev
Author: cryan
Date: 2008-04-25 12:59:26 -0700 (Fri, 25 Apr 2008)
Log Message:
-----------
Added new display Shipments By Shipment and A right-click from GLTrans to the new display for SH type transactions. Issue #6414.
Modified Paths:
--------------
xtuple/trunk/guiclient/dspGLTransactions.cpp
xtuple/trunk/guiclient/guiclient.pro
xtuple/trunk/guiclient/menuInventory.cpp
xtuple/trunk/guiclient/menuInventory.h
Added Paths:
-----------
xtuple/trunk/guiclient/dspShipmentsByShipment.cpp
xtuple/trunk/guiclient/dspShipmentsByShipment.h
xtuple/trunk/guiclient/dspShipmentsByShipment.ui
Modified: xtuple/trunk/guiclient/dspGLTransactions.cpp
===================================================================
--- xtuple/trunk/guiclient/dspGLTransactions.cpp 2008-04-25 18:00:59 UTC (rev 1978)
+++ xtuple/trunk/guiclient/dspGLTransactions.cpp 2008-04-25 19:59:26 UTC (rev 1979)
@@ -65,6 +65,7 @@
#include "invoice.h"
#include "purchaseOrder.h"
#include "glTransactionDetail.h"
+#include "dspShipmentsByShipment.h"
/*
* Constructs a dspGLTransactions as a child of 'parent', with the
@@ -175,6 +176,8 @@
menuThis->insertItem(tr("View Invoice..."), this, SLOT(sViewDocument()));
else if(item->text(2) == "PO")
menuThis->insertItem(tr("View Purchase Order..."), this, SLOT(sViewDocument()));
+ else if(item->text(2) == "SH")
+ menuThis->insertItem(tr("View Shipment..."), this, SLOT(sViewDocument()));
}
void dspGLTransactions::sPrint()
@@ -314,5 +317,21 @@
newdlg->set(params);
omfgThis->handleNewWindow(newdlg);
}
+ else if(item->text(2) == "SH")
+ {
+ q.prepare("SELECT shiphead_id"
+ " FROM shiphead"
+ " WHERE (shiphead_number=:shiphead_number)");
+ q.bindValue(":shiphead_number", item->text(3));
+ q.exec();
+ if(!q.first())
+ return;
+
+ params.append("shiphead_id", q.value("shiphead_id").toInt());
+
+ dspShipmentsByShipment *newdlg = new dspShipmentsByShipment();
+ newdlg->set(params);
+ omfgThis->handleNewWindow(newdlg);
+ }
}
Added: xtuple/trunk/guiclient/dspShipmentsByShipment.cpp
===================================================================
--- xtuple/trunk/guiclient/dspShipmentsByShipment.cpp (rev 0)
+++ xtuple/trunk/guiclient/dspShipmentsByShipment.cpp 2008-04-25 19:59:26 UTC (rev 1979)
@@ -0,0 +1,399 @@
+/*
+ * Common Public Attribution License Version 1.0.
+ *
+ * The contents of this file are subject to the Common Public Attribution
+ * License Version 1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License
+ * at http://www.xTuple.com/CPAL. The License is based on the Mozilla
+ * Public License Version 1.1 but Sections 14 and 15 have been added to
+ * cover use of software over a computer network and provide for limited
+ * attribution for the Original Developer. In addition, Exhibit A has
+ * been modified to be consistent with Exhibit B.
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is PostBooks Accounting, ERP, and CRM Suite.
+ *
+ * The Original Developer is not the Initial Developer and is __________.
+ * If left blank, the Original Developer is the Initial Developer.
+ * The Initial Developer of the Original Code is OpenMFG, LLC,
+ * d/b/a xTuple. All portions of the code written by xTuple are Copyright
+ * (c) 1999-2008 OpenMFG, LLC, d/b/a xTuple. All Rights Reserved.
+ *
+ * Contributor(s): ______________________.
+ *
+ * Alternatively, the contents of this file may be used under the terms
+ * of the xTuple End-User License Agreeement (the xTuple License), in which
+ * case the provisions of the xTuple License are applicable instead of
+ * those above. If you wish to allow use of your version of this file only
+ * under the terms of the xTuple License and not to allow others to use
+ * your version of this file under the CPAL, indicate your decision by
+ * deleting the provisions above and replace them with the notice and other
+ * provisions required by the xTuple License. If you do not delete the
+ * provisions above, a recipient may use your version of this file under
+ * either the CPAL or the xTuple License.
+ *
+ * EXHIBIT B. Attribution Information
+ *
+ * Attribution Copyright Notice:
+ * Copyright (c) 1999-2008 by OpenMFG, LLC, d/b/a xTuple
+ *
+ * Attribution Phrase:
+ * Powered by PostBooks, an open source solution from xTuple
+ *
+ * Attribution URL: http://www.xtuple.org
+ * (to be included in the "Community" menu of the application if possible)
+ *
+ * Graphic Image as provided in the Covered Code, if any.
+ * (online at http://www.xtuple.com/poweredby)
+ *
+ * Display of Attribution Information is required in Larger Works which
+ * are defined in the CPAL as a work which combines Covered Code or
+ * portions thereof with code not governed by the terms of the CPAL.
+ */
+
+#include "dspShipmentsByShipment.h"
+
+#include <QMenu>
+#include <Q3Process>
+#include <QMessageBox>
+#include <QRegExp>
+#include <QSqlError>
+#include <QStatusBar>
+#include <QVariant>
+
+#include <openreports.h>
+
+#include "inputManager.h"
+#include "printShippingForm.h"
+
+dspShipmentsByShipment::dspShipmentsByShipment(QWidget* parent, const char* name, Qt::WFlags fl)
+ : XMainWindow(parent, name, fl)
+{
+ setupUi(this);
+
+ (void)statusBar();
+
+ connect(_print, SIGNAL(clicked()), this, SLOT(sPrint()));
+ connect(_shipment, SIGNAL(newId(int)), this, SLOT(sFillList(int)));
+ connect(_soship, SIGNAL(populateMenu(QMenu*,QTreeWidgetItem*,int)), this, SLOT(sPopulateMenu(QMenu*,QTreeWidgetItem*)));
+
+ _shipment->setType("SO");
+
+ _soship->setRootIsDecorated(TRUE);
+ _soship->addColumn(tr("Shipment #"), _orderColumn, Qt::AlignLeft );
+ _soship->addColumn(tr("Ship Date"), _itemColumn, Qt::AlignCenter );
+ _soship->addColumn(tr("#"), _seqColumn, Qt::AlignCenter );
+ _soship->addColumn(tr("Item"), _itemColumn, Qt::AlignLeft );
+ _soship->addColumn(tr("Description"), -1, Qt::AlignLeft );
+ _soship->addColumn(tr("Whs."), _whsColumn, Qt::AlignCenter );
+ _soship->addColumn(tr("Ordered"), _qtyColumn, Qt::AlignRight );
+ _soship->addColumn(tr("Shipped"), _qtyColumn, Qt::AlignRight );
+ _soship->addColumn(tr("Tracking Number"), _qtyColumn, Qt::AlignRight );
+ _soship->addColumn(tr("Freight at Shipping"), _qtyColumn, Qt::AlignRight );
+}
+
+dspShipmentsByShipment::~dspShipmentsByShipment()
+{
+ // no need to delete child widgets, Qt does it all for us
+}
+
+void dspShipmentsByShipment::languageChange()
+{
+ retranslateUi(this);
+}
+
+enum SetResponse dspShipmentsByShipment::set(const ParameterList &pParams)
+{
+ QVariant param;
+ bool valid;
+
+ param = pParams.value("shiphead_id", &valid);
+ if (valid)
+ {
+ _shipment->setId(param.toInt());
+ _shipment->setEnabled(FALSE);
+ }
+
+ return NoError;
+}
+
+void dspShipmentsByShipment::sPopulateMenu(QMenu *pMenu, QTreeWidgetItem *)
+{
+ int menuItem;
+
+ menuItem = pMenu->insertItem(tr("Print Shipping Form..."), this, SLOT(sPrintShippingForm()), 0);
+ if (!_privileges->check("PrintBillsOfLading"))
+ pMenu->setItemEnabled(menuItem, FALSE);
+
+ menuItem = pMenu->insertItem(tr("Query Shipment Status..."), this, SLOT(sFillURL()), 0);
+}
+
+void dspShipmentsByShipment::sPrint()
+{
+ ParameterList params;
+ params.append("sohead_id", _shipment->id());
+
+ orReport report("ShipmentsByShipment", params);
+ if (report.isValid())
+ report.print();
+ else
+ report.reportError(this);
+}
+
+void dspShipmentsByShipment::sPrintShippingForm()
+{
+ ParameterList params;
+ params.append("cosmisc_id", _soship->id());
+
+ printShippingForm newdlg(this, "", TRUE);
+ newdlg.set(params);
+ newdlg.exec();
+}
+
+void dspShipmentsByShipment::sFillList(int pShipheadid)
+{
+ _soship->clear();
+
+ if (pShipheadid != -1)
+ {
+ q.prepare( "SELECT formatDate(orderdate) AS orderdate,"
+ " custponumber,"
+ " cust_name,"
+ " cust_phone"
+ " FROM cust, (SELECT cohead_cust_id AS order_cust_id,"
+ " cohead_orderdate AS orderdate,"
+ " cohead_custponumber AS custponumber"
+ " FROM cohead JOIN shiphead ON (shiphead_order_id=cohead_id AND shiphead_order_type='SO')"
+ " WHERE(shiphead_id=:shiphead_id)"
+ " UNION"
+ " SELECT NULL AS order_cust_id,"
+ " tohead_orderdate AS orderdate,"
+ " NULL AS custponumber"
+ " FROM tohead JOIN shiphead ON (shiphead_order_id=tohead_id AND shiphead_order_type='TO')"
+ " WHERE(shiphead_id=:shiphead_id)"
+ " ) AS taborder "
+ " WHERE(order_cust_id=cust_id);");
+ q.bindValue(":shiphead_id", pShipheadid);
+ q.exec();
+ if (q.first())
+ {
+ //_orderDate->setText(q.value("orderdate").toString());
+ _poNumber->setText(q.value("custponumber").toString());
+ _custName->setText(q.value("cust_name").toString());
+ _custPhone->setText(q.value("cust_phone").toString());
+ }
+
+ q.prepare( "SELECT cosmisc_id, coitem_id,"
+ " formatShipmentNumber(cosmisc_id) AS cosmisc_number,"
+ " formatDate(cosmisc_shipdate) AS f_shipdate,"
+ " coitem_linenumber, item_number,"
+ " (item_descrip1 || ' ' || item_descrip2) AS itemdescription,"
+ " warehous_code,"
+ " cosmisc_tracknum,"
+ " formatQty(coitem_qtyord) AS f_qtyord,"
+ " formatQty(SUM(coship_qty)) AS f_qtyshipped,"
+ " formatMoney(cosmisc_freight) AS f_freight "
+ "FROM coship, cosmisc, coitem, itemsite, item, warehous "
+ "WHERE ( (coship_cosmisc_id=cosmisc_id)"
+ " AND (coship_coitem_id=coitem_id)"
+ " AND (cosmisc_shipped)"
+ " AND (coitem_itemsite_id=itemsite_id)"
+ " AND (coitem_status <> 'X')"
+ " AND (itemsite_item_id=item_id)"
+ " AND (itemsite_warehous_id=warehous_id)"
+ " AND (cosmisc_id=:shiphead_id) ) "
+ "GROUP BY cosmisc_id, coitem_id,"
+ " cosmisc_shipdate, coitem_linenumber,"
+ " item_number, item_descrip1, item_descrip2, "
+ " warehous_code, cosmisc_tracknum, cosmisc_freight,"
+ " coitem_qtyord "
+ "ORDER BY cosmisc_id DESC, coitem_linenumber DESC;" );
+ q.bindValue(":shiphead_id", pShipheadid);
+ q.exec();
+ if (q.first())
+ {
+ XTreeWidgetItem *soshead = 0;
+ int cosmiscid = -1;
+ do
+ {
+ if (q.value("cosmisc_id").toInt() != cosmiscid)
+ {
+ cosmiscid = q.value("cosmisc_id").toInt();
+
+ soshead = new XTreeWidgetItem( _soship, q.value("cosmisc_id").toInt(),
+ q.value("coitem_id").toInt(), q.value("cosmisc_number"),
+ q.value("f_shipdate").toString(), "", "", "", "", "", "",
+ q.value("cosmisc_tracknum"), q.value("f_freight") );
+ }
+
+ new XTreeWidgetItem( soshead, q.value("cosmisc_id").toInt(), q.value("coitem_id").toInt(),
+ "", "", q.value("coitem_linenumber"),
+ q.value("item_number"), q.value("itemdescription"),
+ q.value("warehous_code"), q.value("f_qtyord"),
+ q.value("f_qtyshipped") );
+ }
+ while (q.next());
+ _soship->expandAll();
+ }
+ else if (q.lastError().type() != QSqlError::None)
+ {
+ systemError(this, q.lastError().databaseText(), __FILE__, __LINE__);
+ return;
+ }
+ }
+ else
+ {
+ _poNumber->clear();
+ _custName->clear();
+ _custPhone->clear();
+ }
+}
+
+void dspShipmentsByShipment::sFillURL()
+{
+ QString url;
+
+ q.prepare( "SELECT upper(cosmisc_shipvia) AS cosmisc_shipvia, cosmisc_tracknum, cohead_shiptozipcode "
+ "FROM cosmisc, cohead "
+ "WHERE ((cosmisc_id=:cosmisc_id) "
+ "AND (cosmisc_cohead_id=cohead_id));");
+
+ q.bindValue(":cosmisc_id", _soship->id());
+ q.exec();
+ if (q.first()) {
+ bool findShipper;
+ findShipper = false;
+
+// Code for UPS
+ if (q.value("cosmisc_shipvia").toString ().left(3) == "UPS") {
+ QString url("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum=");
+ url += q.value("cosmisc_tracknum").toString ();
+ url += "&AgreeToTermsAndConditions=yes&track.x=40&track.y=9";
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ }
+
+ // Code for SAIA
+ if (q.value("cosmisc_shipvia").toString ().left(4) == "SAIA") {
+ QString url("http://www.SaiaSecure.com/tracing/manifest.asp?UID=&PWD=&PRONum1=");
+ QString _partial;
+ QString _tracknum;
+ _tracknum = q.value("cosmisc_tracknum").toString ();
+ int _length_tracknum;
+ int _how_many;
+ _length_tracknum = _tracknum.length();
+ _how_many = _length_tracknum - 5;
+ _partial = _tracknum.left(3);
+ _partial += _tracknum.mid( 4, _how_many);
+ url += _partial;
+ url += "&Type=Pro&x=55&y=8";
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ }
+
+ // Code for A&B
+ if ((q.value("cosmisc_shipvia").toString ().left(5) == "A & B") || (q.value("cosmisc_shipvia").toString ().left(3) == "A&B")) {
+ QString url("http://www.aandbfreight.com/");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("A & B"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ // Code for AVERITT
+ if (q.value("cosmisc_shipvia").toString ().left(7) == "AVERITT") {
+ QString url("http://www.averittexpress.com/");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("AVERITT"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ // Code for DHL
+ if (q.value("cosmisc_shipvia").toString ().left(3) == "DHL") {
+ QString url("http://www.dhl-usa.com/home/Home.asp");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("DHL"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ // Code for FEDEX
+ if (q.value("cosmisc_shipvia").toString ().left(5) == "FEDEX") {
+ QString url("http://www.fedex.com/Tracking?ascend_header=1&clienttype=dotcom&cntry_code=us&language=english&tracknumbers=");
+ QString _partial;
+ QString _tracknum;
+ _tracknum = q.value("cosmisc_tracknum").toString ();
+ int _length_tracknum;
+ int _how_many;
+ _length_tracknum = _tracknum.length();
+ _how_many = _length_tracknum - 5;
+ QString _check_tail;
+ _check_tail = _tracknum.right(2);
+ _check_tail = _check_tail.left(1);
+ if (_check_tail == "-") {
+ // Ok we need to strip the hyphen out
+ _partial = _tracknum.left( _length_tracknum -2);
+ _partial += _tracknum.right(1);
+ }
+ else
+ {
+ _partial = _tracknum;
+ }
+ url += _partial;
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ }
+
+ // Code for R&L
+ if ((q.value("cosmisc_shipvia").toString ().left(5) == "R & L") || (q.value("cosmisc_shipvia").toString ().left(3) == "R&L")) { QString url("http://www.rlcarriers.com/new/index.asp");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("R&L"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ // Code for ROADWAY
+ if (q.value("cosmisc_shipvia").toString ().left(7) == "ROADWAY") {
+ QString url("http://www.quiktrak.roadway.com/cgi-bin/quiktrak?type=0&pro0=");
+ url += q.value("cosmisc_tracknum").toString ();
+ url += "&zip0=";
+ url += q.value("cohead_shiptozipcode").toString ();
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ }
+
+ // Code for USF
+ if (q.value("cosmisc_shipvia").toString ().left(3) == "USF") {
+ QString url("http://www.usfc.com/shipmentStatus/shipmentStatustWS.jsp?TrackType=H&TrackNumber=");
+ url += q.value("cosmisc_tracknum").toString ();
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ }
+
+ // Code for WATKINS
+ if (q.value("cosmisc_shipvia").toString ().left(7) == "WATKINS") {
+ QString url("http://www.watkins.com/");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("WATKINS"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ // Code for YELLOW
+ if (q.value("cosmisc_shipvia").toString ().left(7) == "YELLOW") {
+ QString url("http://www.myyellow.com/dynamic/services/content/index.jsp");
+ findShipper = true;
+ omfgThis->launchBrowser(this, url);
+ QMessageBox::information(this, tr("YELLOW"), tr("We cannot direct link to shipper at this time - tracking number is ") + q.value("cosmisc_tracknum").toString (), QMessageBox::Ok);
+ }
+
+ if (!findShipper){
+ QMessageBox::information(this, tr("Shipper"), tr("We do not currently process this shipper ") + q.value("cosmisc_shipvia").toString (), QMessageBox::Ok);
+ }
+ }
+ else if (q.lastError().type() != QSqlError::None)
+ {
+ systemError(this, q.lastError().databaseText(), __FILE__, __LINE__);
+ return;
+ }
+}
Added: xtuple/trunk/guiclient/dspShipmentsByShipment.h
===================================================================
--- xtuple/trunk/guiclient/dspShipmentsByShipment.h (rev 0)
+++ xtuple/trunk/guiclient/dspShipmentsByShipment.h 2008-04-25 19:59:26 UTC (rev 1979)
@@ -0,0 +1,88 @@
+/*
+ * Common Public Attribution License Version 1.0.
+ *
+ * The contents of this file are subject to the Common Public Attribution
+ * License Version 1.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License
+ * at http://www.xTuple.com/CPAL. The License is based on the Mozilla
+ * Public License Version 1.1 but Sections 14 and 15 have been added to
+ * cover use of software over a computer network and provide for limited
+ * attribution for the Original Developer. In addition, Exhibit A has
+ * been modified to be consistent with Exhibit B.
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+ * the License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is PostBooks Accounting, ERP, and CRM Suite.
+ *
+ * The Original Developer is not the Initial Developer and is __________.
+ * If left blank, the Original Developer is the Initial Developer.
+ * The Initial Developer of the Original Code is OpenMFG, LLC,
+ * d/b/a xTuple. All portions of the code written by xTuple are Copyright
+ * (c) 1999-2008 OpenMFG, LLC, d/b/a xTuple. All Rights Reserved.
+ *
+ * Contributor(s): ______________________.
+ *
+ * Alternatively, the contents of this file may be used under the terms
+ * of the xTuple End-User License Agreeement (the xTuple License), in which
+ * case the provisions of the xTuple License are applicable instead of
+ * those above. If you wish to allow use of your version of this file only
+ * under the terms of the xTuple License and not to allow others to use
+ * your version of this file under the CPAL, indicate your decision by
+ * deleting the provisions above and replace them with the notice and other
+ * provisions required by the xTuple License. If you do not delete the
+ * provisions above, a recipient may use your version of this file under
+ * either the CPAL or the xTuple License.
+ *
+ * EXHIBIT B. Attribution Information
+ *
+ * Attribution Copyright Notice:
+ * Copyright (c) 1999-2008 by OpenMFG, LLC, d/b/a xTuple
+ *
+ * Attribution Phrase:
+ * Powered by PostBooks, an open source solution from xTuple
+ *
+ * Attribution URL: http://www.xtuple.org
+ * (to be included in the "Community" menu of the application if possible)
+ *
+ * Graphic Image as provided in the Covered Code, if any.
+ * (online at http://www.xtuple.com/poweredby)
+ *
+ * Display of Attribution Information is required in Larger Works which
+ * are defined in the CPAL as a work which combines Covered Code or
+ * portions thereof with code not governed by the terms of the CPAL.
+ */
+
+#ifndef DSPSHIPMENTSBYSHIPMENT_H
+#define DSPSHIPMENTSBYSHIPMENT_H
+
+#include "guiclient.h"
+#include "xmainwindow.h"
+#include <parameter.h>
+
+#include "ui_dspShipmentsByShipment.h"
+
+class dspShipmentsByShipment : public XMainWindow, public Ui::dspShipmentsByShipment
+{
+ Q_OBJECT
+
+public:
+ dspShipmentsByShipment(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = Qt::WType_TopLevel);
+ ~dspShipmentsByShipment();
+
+public slots:
+ virtual enum SetResponse set( const ParameterList & pParams );
+ virtual void sPopulateMenu( QMenu * pMenu, QTreeWidgetItem * pItem );
+ virtual void sPrint();
+ virtual void sPrintShippingForm();
+ virtual void sFillList( int pSoheadid );
+ virtual void sFillURL();
+
+protected slots:
+ virtual void languageChange();
+
+};
+
+#endif // DSPSHIPMENTSBYSHIPMENT_H
Added: xtuple/trunk/guiclient/dspShipmentsByShipment.ui
===================================================================
--- xtuple/trunk/guiclient/dspShipmentsByShipment.ui (rev 0)
+++ xtuple/trunk/guiclient/dspShipmentsByShipment.ui 2008-04-25 19:59:26 UTC (rev 1979)
@@ -0,0 +1,382 @@
+<ui version="4.0" >
+ <class>dspShipmentsByShipment</class>
+ <widget class="QMainWindow" name="dspShipmentsByShipment" >
+ <property name="enabled" >
+ <bool>true</bool>
+ </property>
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>666</width>
+ <height>282</height>
+ </rect>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle" >
+ <string>Shipments by Shipment</string>
+ </property>
+ <widget class="QWidget" name="widget" >
+ <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="ShipmentCluster" name="_shipment" >
+ <property name="focusPolicy" >
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="label" >
+ <string>Shipment:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>271</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
+ <number>5</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="_custNameLit" >
+ <property name="text" >
+ <string>Cust. Name:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="_custPhoneLit" >
+ <property name="text" >
+ <string>Cust. Phone:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="_poNumberLit" >
+ <property name="text" >
+ <string>P/O Number:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="_custName" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="_custPhone" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="_poNumber" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>10</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <item>
+ <widget class="QPushButton" name="_close" >
+ <property name="text" >
+ <string>&Close</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="_print" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="text" >
+ <string>&Print</string>
+ </property>
+ <property name="shortcut" >
+ <string>Alt+P</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>77</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QFrame" name="frame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>1</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
+ <number>0</number>
+ </property>
+ <property name="leftMargin" >
+ <number>0</number>
+ </property>
+ <property name="topMargin" >
+ <number>0</number>
+ </property>
+ <property name="rightMargin" >
+ <number>0</number>
+ </property>
+ <property name="bottomMargin" >
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="_shipmentsLit" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>20</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Shipments:</string>
+ </property>
+ <property name="buddy" >
+ <cstring>_soship</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="XTreeWidget" name="_soship" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>100</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <customwidgets>
+ <customwidget>
+ <class>ShipmentCluster</class>
+ <extends>QWidget</extends>
+ <header>shipmentcluster.h</header>
+ </customwidget>
+ <customwidget>
+ <class>XTreeWidget</class>
+ <extends>QTreeWidget</extends>
+ <header>xtreewidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>_shipment</tabstop>
+ <tabstop>_soship</tabstop>
+ <tabstop>_print</tabstop>
+ <tabstop>_close</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>_close</sender>
+ <signal>clicked()</signal>
+ <receiver>dspShipmentsByShipment</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>599</x>
+ <y>32</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>_shipment</sender>
+ <signal>valid(bool)</signal>
+ <receiver>_print</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>154</x>
+ <y>31</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>607</x>
+ <y>67</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
Modified: xtuple/trunk/guiclient/guiclient.pro
===================================================================
--- xtuple/trunk/guiclient/guiclient.pro 2008-04-25 18:00:59 UTC (rev 1978)
+++ xtuple/trunk/guiclient/guiclient.pro 2008-04-25 19:59:26 UTC (rev 1979)
@@ -156,7 +156,8 @@
dspSalesOrderStatus.ui dspSalesOrdersByItem.ui dspSalesOrdersByCustomer.ui \
dspSalesOrdersByCustomerPO.ui dspSalesOrdersByParameterList.ui \
dspSequencedBOM.ui dspSingleLevelBOM.ui dspSingleLevelWhereUsed.ui \
- dspShipmentsByDate.ui dspShipmentsBySalesOrder.ui dspSlowMovingInventoryByClassCode.ui \
+ dspShipmentsByDate.ui dspShipmentsBySalesOrder.ui dspShipmentsByShipment.ui \
+ dspSlowMovingInventoryByClassCode.ui \
dspStandardJournalHistory.ui dspStandardOperationsByWorkCenter.ui maintainShipping.ui \
dspSubstituteAvailabilityByItem.ui dspSummarizedBacklogByWarehouse.ui \
dspSummarizedBankrecHistory.ui \
@@ -464,7 +465,8 @@
dspSalesOrderStatus.h dspSalesOrdersByItem.h dspSalesOrdersByCustomer.h \
dspSalesOrdersByCustomerPO.h dspSalesOrdersByParameterList.h \
dspSequencedBOM.h dspSingleLevelBOM.h dspSingleLevelWhereUsed.h \
- dspShipmentsByDate.h dspShipmentsBySalesOrder.h dspSlowMovingInventoryByClassCode.h \
+ dspShipmentsByDate.h dspShipmentsBySalesOrder.h dspShipmentsByShipment.h \
+ dspSlowMovingInventoryByClassCode.h \
dspStandardJournalHistory.h dspStandardOperationsByWorkCenter.h maintainShipping.h \
dspSubstituteAvailabilityByItem.h dspSummarizedBacklogByWarehouse.h \
dspSummarizedBankrecHistory.h \
@@ -779,7 +781,8 @@
dspSalesOrderStatus.cpp dspSalesOrdersByItem.cpp dspSalesOrdersByCustomer.cpp \
dspSalesOrdersByCustomerPO.cpp dspSalesOrdersByParameterList.cpp \
dspSequencedBOM.cpp dspSingleLevelBOM.cpp dspSingleLevelWhereUsed.cpp \
- dspShipmentsByDate.cpp dspShipmentsBySalesOrder.cpp dspSlowMovingInventoryByClassCode.cpp \
+ dspShipmentsByDate.cpp dspShipmentsBySalesOrder.cpp dspShipmentsByShipment.cpp \
+ dspSlowMovingInventoryByClassCode.cpp \
dspStandardJournalHistory.cpp dspStandardOperationsByWorkCenter.cpp maintainShipping.cpp \
dspSubstituteAvailabilityByItem.cpp dspSummarizedBacklogByWarehouse.cpp \
dspSummarizedBankrecHistory.cpp \
Modified: xtuple/trunk/guiclient/menuInventory.cpp
===================================================================
--- xtuple/trunk/guiclient/menuInventory.cpp 2008-04-25 18:00:59 UTC (rev 1978)
+++ xtuple/trunk/guiclient/menuInventory.cpp 2008-04-25 19:59:26 UTC (rev 1979)
@@ -129,6 +129,7 @@
#include "dspSummarizedBacklogByWarehouse.h"
#include "dspShipmentsBySalesOrder.h"
#include "dspShipmentsByDate.h"
+#include "dspShipmentsByShipment.h"
#include "dspFrozenItemSites.h"
#include "dspCountSlipEditList.h"
@@ -380,6 +381,7 @@
{ "menu", tr("&Shipments"), (char*)reportsShipmentsMenu, shippingReportsMenu, true, NULL, NULL, true , NULL },
{ "sr.dspShipmentsBySalesOrder", tr("by Sales &Order..."), SLOT(sDspShipmentsBySalesOrder()), reportsShipmentsMenu, _privileges->check("ViewShipping"), NULL, NULL, true, NULL },
{ "sr.dspShipmentsByDate", tr("by &Date..."), SLOT(sDspShipmentsByDate()), reportsShipmentsMenu, _privileges->check("ViewShipping"), NULL, NULL, true, NULL },
+ { "sr.dspShipmentsByShipment", tr("by &Shipment..."), SLOT(sDspShipmentsByShipment()), reportsShipmentsMenu, _privileges->check("ViewShipping"), NULL, NULL, true, NULL },
// Inventory | Transactions
{ "menu", tr("&Transactions"), (char*)transactionsMenu, mainMenu, true, NULL, NULL, true , NULL },
@@ -938,7 +940,12 @@
omfgThis->handleNewWindow(new dspShipmentsByDate());
}
+void menuInventory::sDspShipmentsByShipment()
+{
+ omfgThis->handleNewWindow(new dspShipmentsByShipment());
+}
+
void menuInventory::sDspFrozenItemSites()
{
omfgThis->handleNewWindow(new dspFrozenItemSites());
Modified: xtuple/trunk/guiclient/menuInventory.h
===================================================================
--- xtuple/trunk/guiclient/menuInventory.h 2008-04-25 18:00:59 UTC (rev 1978)
+++ xtuple/trunk/guiclient/menuInventory.h 2008-04-25 19:59:26 UTC (rev 1979)
@@ -150,6 +150,7 @@
void sDspSummarizedBacklogByWarehouse();
void sDspShipmentsBySalesOrder();
void sDspShipmentsByDate();
+ void sDspShipmentsByShipment();
void sDspItemAvailabilityWorkbench();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|