void creditMemoItem::populate() { XSqlQuery cmitem; cmitem.prepare("SELECT cmitem.*, " " cmhead_taxzone_id, cmhead_curr_id, " " (SELECT SUM(taxhist_tax * -1) " " FROM cmitemtax WHERE (cmitem_id=taxhist_parent_id)) AS tax," " itemsite_warehous_id, itemsite_costmethod " "FROM cmhead, cmitem " "LEFT OUTER JOIN itemsite ON (cmitem_itemsite_id=itemsite_id)" "WHERE ( (cmitem_cmhead_id=cmhead_id)" " AND (cmitem_id=:cmitem_id) );" ); cmitem.bindValue(":cmitem_id", _cmitemid); cmitem.exec(); if (cmitem.first()) { _cmheadid = cmitem.value("cmitem_cmhead_id").toInt(); _taxzoneid = cmitem.value("cmhead_taxzone_id").toInt(); _rsnCode->setId(cmitem.value("cmitem_rsncode_id").toInt()); _item->setItemsiteid(cmitem.value("cmitem_itemsite_id").toInt()); _warehouse->setId(cmitem.value("itemsite_warehous_id").toInt()); _lineNumber->setText(cmitem.value("cmitem_linenumber").toString()); _netUnitPrice->setLocalValue(cmitem.value("cmitem_unitprice").toDouble()); _qtyToCredit->setDouble(cmitem.value("cmitem_qtycredit").toDouble()); _qtyReturned->setDouble(cmitem.value("cmitem_qtyreturned").toDouble()); // TODO: should this include itemsite_ if (cmitem.value("cmitem_raitem_id").toInt() > 0 || cmitem.value("itemsite_costmethod").toString() == "J") { _updateInv->setChecked(false); _updateInv->setEnabled(false); _qtyReturned->setEnabled(false); } else { _updateInv->setChecked(cmitem.value("cmitem_updateinv").toBool()); _updateInv->setEnabled(true); _qtyReturned->setEnabled(true); } _qtyUOM->setId(cmitem.value("cmitem_qty_uom_id").toInt()); _ratio=cmitem.value("cmitem_qty_invuomratio").toDouble(); _pricingUOM->setId(cmitem.value("cmitem_price_uom_id").toInt()); _priceinvuomratio = cmitem.value("cmitem_price_invuomratio").toDouble(); _comments->setText(cmitem.value("cmitem_comments").toString()); _taxType->setId(cmitem.value("cmitem_taxtype_id").toInt()); _tax->setId(cmitem.value("cmhead_curr_id").toInt()); _tax->setLocalValue(cmitem.value("tax").toDouble()); sCalculateDiscountPrcnt(); _listPrices->setEnabled(true); _saved=true; } else if (cmitem.lastError().type() != QSqlError::NoError) { systemError(this, cmitem.lastError().databaseText(), __FILE__, __LINE__); return; } }
creditMemoItem::creditMemoItem(QWidget* parent, const char* name, bool modal, Qt::WFlags fl) : XDialog(parent, name, modal, fl) { setupUi(this); #ifndef Q_WS_MAC _listPrices->setMaximumWidth(25); #endif connect(_discountFromSale, SIGNAL(lostFocus()), this, SLOT(sCalculateFromDiscount())); //connect(_extendedPrice, SIGNAL(valueChanged()), this, SLOT(sLookupTax())); connect(_item, SIGNAL(newId(int)), this, SLOT(sPopulateItemInfo())); connect(_listPrices, SIGNAL(clicked()), this, SLOT(sListPrices())); connect(_netUnitPrice, SIGNAL(valueChanged()), this, SLOT(sCalculateDiscountPrcnt())); connect(_netUnitPrice, SIGNAL(valueChanged()), this, SLOT(sCalculateExtendedPrice())); connect(_netUnitPrice, SIGNAL(idChanged(int)), this, SLOT(sPriceGroup())); connect(_qtyToCredit, SIGNAL(textChanged(const QString&)), this, SLOT(sCalculateExtendedPrice())); connect(_save, SIGNAL(clicked()), this, SLOT(sSave())); connect(_taxCode, SIGNAL(newID(int)), this, SLOT(sLookupTax())); connect(_taxLit, SIGNAL(leftClickedURL(const QString&)), this, SLOT(sTaxDetail())); connect(_taxType, SIGNAL(newID(int)), this, SLOT(sLookupTaxCode())); connect(_qtyUOM, SIGNAL(newID(int)), this, SLOT(sQtyUOMChanged())); connect(_pricingUOM, SIGNAL(newID(int)), this, SLOT(sPriceUOMChanged())); _mode = cNew; _cmitemid = -1; _cmheadid = -1; _custid = -1; _invoiceNumber = -1; _priceRatio = 1.0; _qtyShippedCache = 0.0; _shiptoid = -1; _taxauthid = -1; _taxCache.clear(); _qtyinvuomratio = 1.0; _priceinvuomratio = 1.0; _invuomid = -1; _qtyToCredit->setValidator(omfgThis->qtyVal()); _qtyReturned->setValidator(omfgThis->qtyVal()); _qtyShipped->setPrecision(omfgThis->qtyVal()); _discountFromList->setPrecision(omfgThis->percentVal()); _discountFromSale->setValidator(new QDoubleValidator(-9999, 100, 2, this)); _taxType->setEnabled(_privileges->check("OverrideTax")); _taxCode->setEnabled(_privileges->check("OverrideTax")); //If not multi-warehouse hide whs control if (!_metrics->boolean("MultiWhs")) { _warehouseLit->hide(); _warehouse->hide(); } adjustSize(); }
void creditMemoItem::populate() { XSqlQuery cmitem; cmitem.prepare("SELECT cmitem.*, " " formatQty(cmitem_qtycredit) AS tocredit," " formatQty(cmitem_qtyreturned) AS toreturn," " cmhead_taxauth_id," " COALESCE(cmhead_tax_curr_id, cmhead_curr_id) AS taxcurr " "FROM cmitem, cmhead " "WHERE ((cmitem_cmhead_id=cmhead_id)" " AND (cmitem_id=:cmitem_id));" ); cmitem.bindValue(":cmitem_id", _cmitemid); cmitem.exec(); if (cmitem.first()) { _netUnitPrice->setLocalValue(cmitem.value("cmitem_unitprice").toDouble()); // do _item and _taxauth before other tax stuff because of signal cascade _taxauthid = cmitem.value("cmhead_taxauth_id").toInt(); _tax->setId(cmitem.value("taxcurr").toInt()); _item->setItemsiteid(cmitem.value("cmitem_itemsite_id").toInt()); _lineNumber->setText(cmitem.value("cmitem_linenumber").toString()); _qtyToCredit->setText(cmitem.value("tocredit").toString()); _qtyReturned->setText(cmitem.value("toreturn").toString()); _comments->setText(cmitem.value("cmitem_comments").toString()); _taxCode->setId(cmitem.value("cmitem_tax_id").toInt()); _taxType->setId(cmitem.value("cmitem_taxtype_id").toInt()); _taxCache.setLinePct(cmitem.value("cmitem_tax_pcta").toDouble(), cmitem.value("cmitem_tax_pctb").toDouble(), cmitem.value("cmitem_tax_pctc").toDouble()); _taxCache.setLine(cmitem.value("cmitem_tax_ratea").toDouble(), cmitem.value("cmitem_tax_rateb").toDouble(), cmitem.value("cmitem_tax_ratec").toDouble()); _tax->setLocalValue(_taxCache.total()); _rsnCode->setId(cmitem.value("cmitem_rsncode_id").toInt()); sCalculateDiscountPrcnt(); } else if (cmitem.lastError().type() != QSqlError::None) { systemError(this, cmitem.lastError().databaseText(), __FILE__, __LINE__); return; } }
void creditMemoItem::sListPrices() { ParameterList params; params.append("cust_id", _custid); params.append("shipto_id", _shiptoid); params.append("item_id", _item->id()); params.append("warehous_id", _warehouse->id()); // don't params.append("qty", ...) as we don't know how many were purchased params.append("curr_id", _netUnitPrice->id()); params.append("effective", _netUnitPrice->effective()); priceList newdlg(this); newdlg.set(params); if (newdlg.exec() == XDialog::Accepted) { _netUnitPrice->setLocalValue(newdlg._selectedPrice * (_priceinvuomratio / _priceRatio)); sCalculateDiscountPrcnt(); } }
void creditMemoItem::populate() { XSqlQuery cmitem; cmitem.prepare("SELECT cmitem_cmhead_id,cmitem_itemsite_id,cmitem_linenumber,cmitem_unitprice, " " cmitem_qtycredit,cmitem_qtyreturned,cmitem_comments,cmitem_taxtype_id, " " cmitem_rsncode_id,cmhead_taxzone_id,cmhead_curr_id, " " sum(taxhist_tax * -1) AS tax " "FROM cmhead, cmitem " " LEFT OUTER JOIN cmitemtax ON (cmitem_id=taxhist_parent_id) " "WHERE ((cmitem_cmhead_id=cmhead_id)" " AND (cmitem_id=:cmitem_id)) " "GROUP BY cmitem_cmhead_id,cmitem_itemsite_id,cmitem_linenumber,cmitem_unitprice, " " cmitem_qtycredit,cmitem_qtyreturned,cmitem_comments,cmitem_taxtype_id, " " cmitem_rsncode_id,cmhead_taxzone_id,cmhead_curr_id;" ); cmitem.bindValue(":cmitem_id", _cmitemid); cmitem.exec(); if (cmitem.first()) { _cmheadid = cmitem.value("cmitem_cmhead_id").toInt(); _taxzoneid = cmitem.value("cmhead_taxzone_id").toInt(); _rsnCode->setId(cmitem.value("cmitem_rsncode_id").toInt()); _item->setItemsiteid(cmitem.value("cmitem_itemsite_id").toInt()); _lineNumber->setText(cmitem.value("cmitem_linenumber").toString()); _netUnitPrice->setLocalValue(cmitem.value("cmitem_unitprice").toDouble()); _qtyToCredit->setDouble(cmitem.value("cmitem_qtycredit").toDouble()); _qtyReturned->setDouble(cmitem.value("cmitem_qtyreturned").toDouble()); _comments->setText(cmitem.value("cmitem_comments").toString()); _taxType->setId(cmitem.value("cmitem_taxtype_id").toInt()); _tax->setId(cmitem.value("cmhead_curr_id").toInt()); _tax->setLocalValue(cmitem.value("tax").toDouble()); sCalculateDiscountPrcnt(); _listPrices->setEnabled(true); _saved=true; } else if (cmitem.lastError().type() != QSqlError::NoError) { systemError(this, cmitem.lastError().databaseText(), __FILE__, __LINE__); return; } }
void creditMemoItem::sListPrices() { q.prepare( "SELECT currToCurr(ipshead_curr_id, :curr_id, ipsprice_price, :effective) AS price" " FROM ipsass, ipshead, ipsprice " " WHERE ( (ipsass_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (ipsass_cust_id=:cust_id)" " AND (COALESCE(LENGTH(ipsass_shipto_pattern), 0) = 0)" " AND (CURRENT_DATE BETWEEN ipshead_effective AND (ipshead_expires - 1) ) )" " UNION SELECT ipsprice_price AS price" " FROM ipsass, ipshead, ipsprice " " WHERE ( (ipsass_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (ipsass_shipto_id=:shipto_id)" " AND (ipsass_shipto_id != -1)" " AND (CURRENT_DATE BETWEEN ipshead_effective AND (ipshead_expires - 1)) )" " UNION SELECT ipsprice_price AS price" " FROM ipsass, ipshead, ipsprice, cust " " WHERE ( (ipsass_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (ipsass_custtype_id=cust_custtype_id)" " AND (cust_id=:cust_id)" " AND (CURRENT_DATE BETWEEN ipshead_effective AND (ipshead_expires - 1)) )" " UNION SELECT ipsprice_price AS price" " FROM ipsass, ipshead, ipsprice, custtype, cust " " WHERE ( (ipsass_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (coalesce(length(ipsass_custtype_pattern), 0) > 0)" " AND (custtype_code ~ ipsass_custtype_pattern)" " AND (cust_custtype_id=custtype_id)" " AND (cust_id=:cust_id)" " AND (CURRENT_DATE BETWEEN ipshead_effective AND (ipshead_expires - 1)))" " UNION SELECT ipsprice_price AS price" " FROM ipsass, ipshead, ipsprice, shipto " " WHERE ( (ipsass_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (shipto_id=:shipto_id)" " AND (COALESCE(LENGTH(ipsass_shipto_pattern), 0) > 0)" " AND (shipto_num ~ ipsass_shipto_pattern)" " AND (ipsass_cust_id=:cust_id)" " AND (CURRENT_DATE BETWEEN ipshead_effective AND (ipshead_expires - 1)) )" " UNION SELECT ipsprice_price AS price" " FROM sale, ipshead, ipsprice " " WHERE ((sale_ipshead_id=ipshead_id)" " AND (ipsprice_ipshead_id=ipshead_id)" " AND (ipsprice_item_id=:item_id)" " AND (CURRENT_DATE BETWEEN sale_startdate AND (sale_enddate - 1)) ) " " UNION SELECT (item_listprice - (item_listprice * cust_discntprcnt)) AS price " " FROM item, cust " " WHERE ( (item_sold)" " AND (NOT item_exclusive)" " AND (item_id=:item_id)" " AND (cust_id=:cust_id) );"); q.bindValue(":item_id", _item->id()); q.bindValue(":cust_id", _custid); q.bindValue(":shipto_id", _shiptoid); q.bindValue(":curr_id", _netUnitPrice->id()); q.bindValue(":effective", _netUnitPrice->effective()); q.exec(); if (q.size() == 1) { q.first(); _netUnitPrice->setLocalValue(q.value("price").toDouble() * (_priceinvuomratio / _priceRatio)); } else { ParameterList params; params.append("cust_id", _custid); params.append("shipto_id", _shiptoid); params.append("item_id", _item->id()); // don't params.append("qty", ...) as we don't know how many were purchased params.append("curr_id", _netUnitPrice->id()); params.append("effective", _netUnitPrice->effective()); priceList newdlg(this); newdlg.set(params); if (newdlg.exec() == XDialog::Accepted) { _netUnitPrice->setLocalValue(newdlg._selectedPrice * (_priceinvuomratio / _priceRatio)); sCalculateDiscountPrcnt(); } } }
void creditMemoItem::populate() { XSqlQuery cmitem; cmitem.prepare("SELECT cmitem.*, " " cmhead_taxzone_id, cmhead_curr_id, " " (SELECT SUM(taxhist_tax * -1) " " FROM cmitemtax WHERE (cmitem_id=taxhist_parent_id)) AS tax," " itemsite_warehous_id, itemsite_costmethod " "FROM cmhead, cmitem " "LEFT OUTER JOIN itemsite ON (cmitem_itemsite_id=itemsite_id)" "WHERE ( (cmitem_cmhead_id=cmhead_id)" " AND (cmitem_id=:cmitem_id) );" ); cmitem.bindValue(":cmitem_id", _cmitemid); cmitem.exec(); if (cmitem.first()) { _cmheadid = cmitem.value("cmitem_cmhead_id").toInt(); _taxzoneid = cmitem.value("cmhead_taxzone_id").toInt(); _rsnCode->setId(cmitem.value("cmitem_rsncode_id").toInt()); _revAccnt->setId(cmitem.value("cmitem_rev_accnt_id").toInt()); if (cmitem.value("cmitem_itemsite_id").toInt() > 0) { _itemSelected->setChecked(true); _item->setItemsiteid(cmitem.value("cmitem_itemsite_id").toInt()); _warehouse->setId(cmitem.value("itemsite_warehous_id").toInt()); } else { _miscSelected->setChecked(true); _itemNumber->setText(cmitem.value("cmitem_number")); _itemDescrip->setText(cmitem.value("cmitem_descrip").toString()); _salescat->setId(cmitem.value("cmitem_salescat_id").toInt()); _qtyReturned->setEnabled(false); } _lineNumber->setText(cmitem.value("cmitem_linenumber").toString()); _netUnitPrice->setLocalValue(cmitem.value("cmitem_unitprice").toDouble()); _qtyToCredit->setDouble(cmitem.value("cmitem_qtycredit").toDouble()); _qtyReturned->setDouble(cmitem.value("cmitem_qtyreturned").toDouble()); // TODO: should this include itemsite_ if (cmitem.value("cmitem_raitem_id").toInt() > 0 || cmitem.value("itemsite_costmethod").toString() == "J") { _updateInv->setChecked(false); _updateInv->setEnabled(false); _qtyReturned->setEnabled(false); } else { _updateInv->setChecked(cmitem.value("cmitem_updateinv").toBool()); _updateInv->setEnabled(true); _qtyReturned->setEnabled(true); } _qtyUOM->setId(cmitem.value("cmitem_qty_uom_id").toInt()); _ratio=cmitem.value("cmitem_qty_invuomratio").toDouble(); _pricingUOM->setId(cmitem.value("cmitem_price_uom_id").toInt()); _priceinvuomratio = cmitem.value("cmitem_price_invuomratio").toDouble(); _comments->setText(cmitem.value("cmitem_comments").toString()); _taxType->setId(cmitem.value("cmitem_taxtype_id").toInt()); _tax->setId(cmitem.value("cmhead_curr_id").toInt()); _tax->setLocalValue(cmitem.value("tax").toDouble()); sCalculateDiscountPrcnt(); _listPrices->setEnabled(true); _saved=true; } else if (ErrorReporter::error(QtCriticalMsg, this, tr("Error Retrieving Credit Memo Item Information"), cmitem, __FILE__, __LINE__)) { return; } }