#include "centbox.h"
#include "labeldlg.h"
#include "misc.h"
-#include "moneylog.h"
#include "odtrender.h"
#include "orderwin.h"
#include "ticketrender.h"
m->addAction(tr("Change Sh&ipping Method..."),this,SLOT(changeShipping()))
->setEnabled(req->hasRight(req->ROrderChangeShipping));
m->addSeparator();
- m->addAction(tr("MoneyLog for Order..."),this,SLOT(moneyLogOrder()))
- ->setEnabled(req->hasRole("moneylog"));
- m->addAction(tr("MoneyLog for selected Voucher..."),this,SLOT(moneyLogVoucher()))
- ->setEnabled(req->hasRole("moneylog"));
- m->addSeparator();
m->addAction(tr("&Close"),this,SLOT(close()));
m=mb->addMenu(tr("&Payment"));
}
void MOrderWindow::printBill()
-{/*TODO
+{
//get template
- MTemplate tf=req->getTemplate("bill");
+ MTemplate tf=req->templateStore()->getTemplate("bill");
if(!tf.isValid()){
QMessageBox::warning(this,tr("Warning"),tr("Unable to get template file (bill). Giving up."));
return;
}
//mark order as shipped?
- if(m_order.orderStatus()==MOrder::Placed)
+ if(m_order.status()==MOOrder::Placed)
if(QMessageBox::question(this,tr("Mark as shipped?"),tr("Mark this order as shipped now?"),QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes)==QMessageBox::Yes){
- m_order.shipOrder();
- m_state->setText(m_order.orderStatusString());
- m_sentdate->setText(m_order.sentDateTimeStr());
+ MTOrderMarkShipped ms=req->queryOrderMarkShipped(m_order.orderid(),-1);
+ if(!ms.hasError())m_order=ms.getorder();
+ updateData();
}
//print bill
initPrintBuffer();
connect(&rend,SIGNAL(getLoopIterations(QString,int&)),this,SLOT(getLoopIterations(QString,int&)));
connect(&rend,SIGNAL(getLoopVariable(QString,int,QString,MOdtRenderer::VarType&,QVariant&)),this,SLOT(getLoopVariable(QString,int,QString,MOdtRenderer::VarType&,QVariant&)));
rend.renderToPrinter();
- donePrintBuffer();*/
+ donePrintBuffer();
}
void MOrderWindow::saveBill()
-{/*TODO
+{
//get template
- MTemplate tf=req->getTemplate("bill");
+ MTemplate tf=req->templateStore()->getTemplate("bill");
if(!tf.isValid()){
QMessageBox::warning(this,tr("Warning"),tr("Unable to get template file (bill). Giving up."));
return;
fname=fn[0];
}
//mark order as shipped?
- if(m_order.orderStatus()==MOrder::Placed)
+ if(m_order.status()==MOOrder::Placed)
if(QMessageBox::question(this,tr("Mark as shipped?"),tr("Mark this order as shipped now?"),QMessageBox::Yes|QMessageBox::No,QMessageBox::Yes)==QMessageBox::Yes){
- m_order.shipOrder();
- m_state->setText(m_order.orderStatusString());
- m_sentdate->setText(m_order.sentDateTimeStr());
+ MTOrderMarkShipped ms=req->queryOrderMarkShipped(m_order.orderid(),-1);
+ if(!ms.hasError())m_order=ms.getorder();
+ updateData();
}
//render bill
initPrintBuffer();
connect(&rend,SIGNAL(getLoopIterations(QString,int&)),this,SLOT(getLoopIterations(QString,int&)));
connect(&rend,SIGNAL(getLoopVariable(QString,int,QString,MOdtRenderer::VarType&,QVariant&)),this,SLOT(getLoopVariable(QString,int,QString,MOdtRenderer::VarType&,QVariant&)));
rend.renderToFile(fname);
- donePrintBuffer();*/
+ donePrintBuffer();
}
void MOrderWindow::getVariable(QString vn,MOdtRenderer::VarType& av,QVariant&value)
-{/*TODO
+{
if(vn=="ORDERDATE"){
- value=m_order.orderDateTime().toTime_t();
+ value=m_order.ordertime().value();
av=MOdtRenderer::DateVar;
}else
if(vn=="ORDERDATETIME"){
- value=m_order.orderDateTime().toTime_t();
+ value=m_order.ordertime().value();
av=MOdtRenderer::DateTimeVar;
}else
if(vn=="SENTDATE"){
- value=m_order.sentDateTime().toTime_t();
+ value=m_order.senttime().value();
av=MOdtRenderer::DateVar;
}else
if(vn=="SENTDATETIME"){
- value=m_order.sentDateTime().toTime_t();
+ value=m_order.senttime().value();
av=MOdtRenderer::DateTimeVar;
}else
- if(vn=="CUSTOMERID")value=QString::number(m_order.customerID());else
- if(vn=="ORDERID")value=QString::number(m_order.orderID());else
- if(vn=="ADDRESS")value=m_order.customer().address();else
- if(vn=="FULLADDRESS")value=m_order.customer().getNameAddress();else
- if(vn=="NAME")value=m_order.customer().name();else
- if(vn=="DELIVERYADDRESS")value=m_order.deliveryAddress();else
- if(vn=="FINALADDRESS"){
- QString v=m_order.deliveryAddress();
- if(v.trimmed()=="")v=m_order.customer().getNameAddress();
- value=v;
- }else
+ if(vn=="CUSTOMERID")value=QString::number(m_order.customerid());else
+ if(vn=="ORDERID")value=QString::number(m_order.orderid());else
+ if(vn=="ADDRESS")value=m_order.fullInvoiceAddress();else
+ if(vn=="FULLADDRESS")value=m_order.fullInvoiceAddress();else
+ if(vn=="NAME")value=m_order.customer().value().fullName();else
+ if(vn=="DELIVERYADDRESS")value=m_order.fullDeliveryAddress();else
+ if(vn=="FINALADDRESS")value=m_order.fullDeliveryAddress();else
if(vn=="TOTALPRICE"){
- value=m_order.totalPrice();
+ value=m_order.totalprice().value();
av=MOdtRenderer::MoneyVar;
}else
if(vn=="AMOUNTPAID"){
- value=m_order.amountPaid();
+ value=m_order.amountpaid().value();
av=MOdtRenderer::MoneyVar;
}else
- if(vn=="SELLER")value=m_order.seller();else
- if(vn=="COMMENT")value=m_order.comment();else
+ if(vn=="SELLER")value=m_order.soldby().value();else
+ if(vn=="COMMENT")value=m_order.comments().value();else
if(vn=="AMOUNTTOPAY"){
value=m_order.amountToPay();
av=MOdtRenderer::MoneyVar;
av=MOdtRenderer::IntVar;
}else
if(vn=="ADDRESSLINES"){
- value=m_order.customer().address().split("\n").size();
+ value=m_order.fullInvoiceAddress().split("\n").size();
av=MOdtRenderer::IntVar;
}else
- if(vn=="SHIPPING")value=m_order.shipping().description();else
+ if(vn=="SHIPPING")value=m_order.shippingtype().value().description().value();else
if(vn=="SHIPPINGPRICE"){
- value=m_order.shipping().price();
+ value=m_order.shippingtype().value().cost().value();
av=MOdtRenderer::MoneyVar;
- }*/
+ }
}
void MOrderWindow::getLoopIterations(QString loopname,int&iterations)
if(loopname=="TICKETS")iterations=printBuffer.tickets.size();
if(loopname=="ACCTICKETS")iterations=printBuffer.tickinfo.size();
if(loopname=="VOUCHERS")iterations=printBuffer.vouchers.size();
-// if(loopname=="ADDRESSLINES")iterations=m_order.customer_().address().split("\n").size();
+ if(loopname=="ADDRESSLINES")iterations=m_order.fullInvoiceAddress().split("\n").size();
}
void MOrderWindow::getLoopVariable(QString loopname,int it,QString vn,MOdtRenderer::VarType& av,QVariant&value)
{
av=MOdtRenderer::MoneyVar;
}else
if(vn=="ID")value=tickets[it].ticketid().value();else
- if(vn=="TITLE");//value=tickets[it].event().title().value();else
- if(vn=="ARTIST");//value=tickets[it].event().artist().value().name().value();else
+ if(vn=="TITLE")value=tickets[it].event().title().value();else
+ if(vn=="ARTIST")value=tickets[it].event().artist().value().name().value();else
if(vn=="DATE"){
-// value=tickets[it].event().start().value();
+ value=tickets[it].event().start().value();
av=MOdtRenderer::DateVar;
}else
if(vn=="STARTTIME"){
-// value=tickets[it].event().start().value();
+ value=tickets[it].event().start().value();
av=MOdtRenderer::DateTimeVar;
}else
if(vn=="ENDTIME"){
-// value=tickets[it].event().end().value();
+ value=tickets[it].event().end().value();
av=MOdtRenderer::DateTimeVar;
}else
- if(vn=="ROOM");//value=tickets[it].event().room().value();
+ if(vn=="ROOM")value=tickets[it].event().room().value();
}else if(loopname=="ACCTICKETS"){
QList<TickInfo> &tickets=printBuffer.tickinfo;
if(it<0 || it>=tickets.size())return;
value=tickets[it].proto.price().value()*tickets[it].amount;
av=MOdtRenderer::MoneyVar;
}else
- if(vn=="TITLE");//value=tickets[it].proto.event().title().value();else
- if(vn=="ARTIST");//value=tickets[it].proto.event().artist().value().name().value();else
+ if(vn=="TITLE")value=tickets[it].proto.event().title().value();else
+ if(vn=="ARTIST")value=tickets[it].proto.event().artist().value().name().value();else
if(vn=="DATE"){
-// value=tickets[it].proto.event().start().value();
+ value=tickets[it].proto.event().start().value();
av=MOdtRenderer::DateVar;
}else
if(vn=="STARTTIME"){
-// value=tickets[it].proto.event().start().value();
+ value=tickets[it].proto.event().start().value();
av=MOdtRenderer::DateTimeVar;
}else
if(vn=="ENDTIME"){
-// value=tickets[it].proto.event().end().value();
+ value=tickets[it].proto.event().end().value();
av=MOdtRenderer::DateTimeVar;
}else
- if(vn=="ROOM");//value=tickets[it].proto.event().room().value();else
+ if(vn=="ROOM")value=tickets[it].proto.event().room().value();else
if(vn=="AMOUNT"){
value=tickets[it].amount;
av=MOdtRenderer::IntVar;
}else
if(vn=="ID")value=printBuffer.vouchers[it].voucherid().value();
}else if(loopname=="ADDRESSLINES"){
- QStringList lst;//=m_order.customer_().address().split("\n");
+ QStringList lst=m_order.fullInvoiceAddress().split("\n");
if(it<0 || it>=lst.size())return;
value=lst[it];
}else
}
void MOrderWindow::initPrintBuffer()
-{/*TODO:
+{
//clear
donePrintBuffer();
//get tickets (only valid ones)
- QList<MTicket>tlst=m_order.tickets();
+ QList<MOTicket>tlst=m_order.tickets();
for(int i=0;i<tlst.size();i++)
- if(tlst[i].isValid())
+ if(!tlst[i].ticketid().isNull())
printBuffer.tickets.append(tlst[i]);
//accumulated view on tickets
for(int i=0;i<printBuffer.tickets.size();i++){
- MTicket t=printBuffer.tickets[i];
+ MOTicket t=printBuffer.tickets[i];
bool found=false;
for(int j=0;j<printBuffer.tickinfo.size();j++){
if(compare(printBuffer.tickinfo[j].proto,t)){
if(!found)printBuffer.tickinfo.append(t);
}
//get valid vouchers
- QList<MVoucher>vlst=m_order.vouchers();
+ QList<MOVoucher>vlst=m_order.vouchers();
for(int i=0;i<vlst.size();i++)
- if(!vlst[i].isCancelled())
- printBuffer.vouchers.append(vlst[i]);*/
+ if(vlst[i].price()>0||vlst[i].value()>0)
+ printBuffer.vouchers.append(vlst[i]);
}
void MOrderWindow::payment()
QVBoxLayout*vl;
d.setLayout(vl=new QVBoxLayout);
QTextEdit*te;
- QLabel*lab;
vl->addWidget(te=new QTextEdit,1);
te->setPlainText(cmt);
vl->addSpacing(15);
updateData();
}
-void MOrderWindow::moneyLogOrder()
-{
- if(m_order.orderid()<0)return;
- MMoneyLog ml(this,"order\n"+QString::number(m_order.orderid()));
- ml.exec();
-}
-
-void MOrderWindow::moneyLogVoucher()
-{
- if(m_order.orderid()<0)return;
- //get selection
- if(!m_order.isValid())return;
- //get ticket selection
- QModelIndexList lst=m_table->selectionModel()->selectedIndexes();
- if(lst.size()<1)return;
- QModelIndex idx=m_model->index(lst[0].row(),0);
- QString id=m_model->data(idx).toString();
- if(id=="")return;
- int type=m_model->data(idx,Qt::UserRole).toInt();
- if(type==ITEM_VOUCHER){
- MMoneyLog ml(this,"voucher\n"+id);
- ml.exec();
- }else
- QMessageBox::warning(this,tr("Warning"),tr("This is not a voucher, cannot show the money log."));
-}
-
/*************************************************************************************/