00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QFile>
00022 #include <QMessageBox>
00023 #include <QTextStream>
00024
00025 #include "company.h"
00026 #include "configuracion.h"
00027 #include "funcaux.h"
00028 #include "plugins.h"
00029 #include "pedidoclienteview.h"
00030 #include "pedidosclientelist.h"
00031
00032
00034
00039 PedidosClienteList::PedidosClienteList(QWidget *parent, Qt::WFlags flag)
00040 : Listado(NULL, parent, flag) {
00041 _depura("PedidosClienteList::PedidosClienteList", 0);
00042 setupUi(this);
00044 int res = g_plugins->lanza("PedidosClienteList_PedidosClienteList", this);
00045 if (res != 0)
00046 return;
00047 m_idpedidocliente = "";
00048 setSubForm(mui_list);
00049 hideBusqueda();
00050 iniciaForm();
00051 _depura("END PedidosClienteList::PedidosClienteList", 0);
00052 }
00053
00054
00056
00062 PedidosClienteList::PedidosClienteList(Company *comp, QWidget *parent, Qt::WFlags flag): Listado(comp, parent, flag) {
00063 _depura("PedidosClienteList::PedidosClienteList", 0);
00064 setupUi(this);
00066 int res = g_plugins->lanza("PedidosClienteList_PedidosClienteList", this);
00067 if (res != 0)
00068 return;
00069 m_cliente->setEmpresaBase(comp);
00070 m_articulo->setEmpresaBase(comp);
00071 mui_list->setEmpresaBase(comp);
00072 setSubForm(mui_list);
00073 presentar();
00074 m_idpedidocliente = "";
00075 empresaBase()->meteWindow(windowTitle(), this);
00076 hideBusqueda();
00077 iniciaForm();
00079 trataPermisos("pedidocliente");
00080 _depura("END PedidosClienteList::PedidosClienteList", 0);
00081 }
00082
00083
00085
00088 void PedidosClienteList::iniciaForm() {
00089 _depura("PedidosClienteList::iniciaForm");
00091 int res = g_plugins->lanza("PedidosClienteList_iniciaForm", this);
00092 if (res != 0)
00093 return;
00094 mui_procesada->insertItem(0, tr("Todos los pedidos"));
00095 mui_procesada->insertItem(1, tr("Pedidos procesados"));
00096 mui_procesada->insertItem(2, tr("Pedidos no procesados"));
00097 _depura("END PedidosClienteList::iniciaForm");
00098 }
00099
00100
00102
00104 PedidosClienteList::~PedidosClienteList() {
00105 _depura("PedidosClienteList::~PedidosClienteList", 0);
00106 _depura("END PedidosClienteList::~PedidosClienteList", 0);
00107 }
00108
00109
00111
00113 void PedidosClienteList::presentar() {
00114 _depura("PedidosClienteList::presenta", 0);
00116 mui_list->cargar("SELECT *, totalpedidocliente AS total, bimppedidocliente AS base, imppedidocliente AS impuestos FROM pedidocliente LEFT JOIN cliente ON pedidocliente.idcliente = cliente.idcliente LEFT JOIN almacen ON pedidocliente.idalmacen=almacen.idalmacen WHERE 1 = 1 " + generarFiltro());
00117
00119 cursor2 *cur = empresaBase()->cargacursor("SELECT SUM(totalpedidocliente) AS total FROM pedidocliente LEFT JOIN cliente ON pedidocliente.idcliente=cliente.idcliente LEFT JOIN almacen ON pedidocliente.idalmacen = almacen.idalmacen WHERE 1 = 1 " + generarFiltro());
00121 if (cur) {
00122 m_total->setText(cur->valor("total"));
00123 delete cur;
00124 }
00125 _depura("END PedidosClienteList::presenta", 0);
00126 }
00127
00128
00130
00133 QString PedidosClienteList::generarFiltro() {
00135 _depura("PedidosClienteList::generarFiltro", 0);
00136 QString filtro = "";
00137 if (m_filtro->text() != "") {
00138 filtro = " AND ( lower(descpedidocliente) LIKE lower('%" + m_filtro->text() + "%') ";
00139 filtro +=" OR refpedidocliente LIKE '" + m_filtro->text() + "%' ";
00140 filtro += " OR lower(nomcliente) LIKE lower('%" + m_filtro->text() + "%')) ";
00141 } else {
00142 filtro = "";
00143 }
00144 if (m_cliente->idcliente() != "") {
00145 filtro += " AND pedidocliente.idcliente = " + m_cliente->idcliente();
00146 }
00147
00149 if (mui_procesada->currentIndex() == 1) {
00151 filtro += " AND procesadopedidocliente";
00152 } else if (mui_procesada->currentIndex() == 2) {
00154 filtro += " AND NOT procesadopedidocliente ";
00155 }
00156
00157
00158
00159 if (m_articulo->idarticulo() != "") {
00160 filtro += " AND idpedidocliente IN (SELECT DISTINCT idpedidocliente FROM lpedidocliente WHERE idarticulo = '" + m_articulo->idarticulo() + "')";
00161 }
00162 if (m_fechain->text() != "") {
00163 filtro += " AND fechapedidocliente >= '" + m_fechain->text() + "' ";
00164 }
00165 if (m_fechafin->text() != "") {
00166 filtro += " AND fechapedidocliente <= '" + m_fechafin->text() + "' ";
00167 }
00168 return (filtro);
00169 }
00170
00171
00173
00175 void PedidosClienteList::crear() {
00176 _depura("PedidosClienteList:crear", 0);
00177 PedidoClienteView *prov = new PedidoClienteView((Company *)empresaBase(), 0);
00178 empresaBase()->m_pWorkspace->addWindow(prov);
00179 prov->inicializar();
00180 prov->show();
00181 _depura("END PedidosClienteList:crear", 0);
00182 }
00183
00184
00186
00190 void PedidosClienteList::editar(int row) {
00191 _depura("ProveedorList::editar", 0);
00192 try {
00193 m_idpedidocliente = mui_list->DBvalue(QString("idpedidocliente"), row);
00194 if (modoEdicion()) {
00195 PedidoClienteView *prov = new PedidoClienteView((Company *)empresaBase(), 0);
00196 if (prov->cargar(m_idpedidocliente)) {
00197 delete prov;
00198 return;
00199 }
00200 empresaBase()->m_pWorkspace->addWindow(prov);
00201 prov->show();
00202 } else {
00203 emit(selected(m_idpedidocliente));
00204 }
00205 } catch (...) {
00206 mensajeInfo(tr("Error al cargar el pedido cliente"));
00207 }
00208 _depura("END ProveedorList::editar", 0);
00209 }
00210
00211
00213
00215 void PedidosClienteList::imprimir() {
00216 _depura("PedidosClienteList::imprimir", 0);
00217 mui_list->imprimirPDF(tr("Pedidos de clientes"));
00218 _depura("END PedidosClienteList::imprimir", 0);
00219 }
00220
00221
00223
00226 void PedidosClienteList::borrar() {
00227 _depura("PedidosClienteList::borrar", 0);
00228 int a = mui_list->currentRow();
00229 if (a < 0) {
00230 mensajeInfo(tr("Debe seleccionar una linea"));
00231 return;
00232 }
00233 try {
00234 m_idpedidocliente = mui_list->DBvalue(QString("idpedidocliente"));
00235 if (modoEdicion()) {
00236 PedidoClienteView *pcv = ((Company *)empresaBase())->newPedidoClienteView();
00237 if (pcv->cargar(m_idpedidocliente)) {
00238 throw -1;
00239 }
00240 pcv->on_mui_borrar_clicked();
00241 pcv->close();
00242 }
00243 presentar();
00244 } catch (...) {
00245 mensajeInfo(tr("Error al borrar el pedido de cliente"));
00246 }
00247 _depura("END PedidosClienteList::borrar", 0);
00248 }
00249
00250
00252
00255 void PedidosClienteList::setEmpresaBase(Company *comp) {
00256 _depura("PedidosClienteList::setEmpresaBase", 0);
00257 PEmpresaBase::setEmpresaBase( comp);
00258 m_cliente->setEmpresaBase(comp);
00259 mui_list->setEmpresaBase(comp);
00260 _depura("END PedidosClienteList::setEmpresaBase", 0);
00261 }
00262
00263
00265
00267 QString PedidosClienteList::idpedidocliente() {
00268 _depura("PedidosClienteList::idpedidocliente", 0);
00269 _depura("END PedidosClienteList::idpedidocliente", 0);
00270 return m_idpedidocliente;
00271 }
00272
00273
00275
00278 void PedidosClienteList::setidcliente(QString val) {
00279 _depura("PedidosClienteList::setidcliente", 0);
00280 m_cliente->setidcliente(val);
00281 _depura("END PedidosClienteList::setidcliente", 0);
00282 }
00283
00288
00291 PedidosClienteListSubform::PedidosClienteListSubform(QWidget *parent, const char *) : SubForm2Bf(parent) {
00292 _depura("PedidosClienteListSubform::PedidosClienteListSubform", 0);
00294 int res = g_plugins->lanza("PedidosClienteListSubform_PedidosClienteListSubform", this);
00295 if (res != 0)
00296 return;
00297 setDBTableName("pedidocliente");
00298 setDBCampoId("idpedidocliente");
00299 addSHeader("idpedidocliente", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("ID pedido"));
00300 addSHeader("numpedidocliente", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Pedido"));
00301 addSHeader("fechapedidocliente", DBCampo::DBdate, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Fecha"));
00302 addSHeader("nomcliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Cliente"));
00303 addSHeader("refpedidocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Referencia"));
00304 addSHeader("base", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Base Imponible"));
00305 addSHeader("impuestos", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Impuestos"));
00306 addSHeader("total", DBCampo::DBnumeric, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Total"));
00307 addSHeader("descpedidocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Descripcion"));
00308 addSHeader("contactpedidocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Persona de contacto"));
00309 addSHeader("telpedidocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Telefono"));
00310 addSHeader("comentpedidocliente", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Comentario"));
00311 addSHeader("codigoalmacen", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Almacen"));
00312 addSHeader("idtrabajador", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID trabajador"));
00313 addSHeader("idcliente", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID cliente"));
00314 addSHeader("idalmacen", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("ID almacen"));
00315 setinsercion(FALSE);
00316 setDelete(FALSE);
00317 setSortingEnabled(TRUE);
00318 _depura("END PedidosClienteListSubform::PedidosClienteListSubform", 0);
00319 }
00320
00321
00323
00325 void PedidosClienteListSubform::cargar() {
00326 _depura("PedidosClienteListSubform::cargar", 0);
00327 QString SQLQuery = "SELECT * FROM pedidocliente";
00328 SubForm3::cargar(SQLQuery);
00329 _depura("END PedidosClienteListSubform::cargar", 0);
00330 }
00331
00332
00334
00337 void PedidosClienteListSubform::cargar(QString query) {
00338 _depura("PedidosClienteListSubform::cargar", 0);
00339 SubForm3::cargar(query);
00340 _depura("END PedidosClienteListSubform::cargar", 0);
00341 }
00342
00343