00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "paisview.h"
00022 #include "empresabase.h"
00023 #include "subform3.h"
00024
00027
00031 PaisView::PaisView(EmpresaBase *emp, QWidget *parent)
00032 : Ficha(emp, parent) {
00033 _depura("PaisView::PaisView", 0);
00034
00035 setAttribute(Qt::WA_DeleteOnClose);
00036 setupUi(this);
00037
00038 mui_datospais->setDisabled(TRUE);
00039
00040 mui_list->setEmpresaBase(emp);
00041 mui_listprovincias->setEmpresaBase(emp);
00042
00044 mui_list->setDBTableName("pais");
00045 mui_list->setDBCampoId("idpais");
00046 mui_list->addSHeader("idpais", DBCampo::DBint, DBCampo::DBNotNull | DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Pais"));
00047 mui_list->addSHeader("descpais", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Nombre Pais"));
00048 mui_list->addSHeader("cod2pais", DBCampo::DBvarchar, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo 2 Digitos"));
00049 mui_list->addSHeader("cod3pais", DBCampo::DBint, DBCampo::DBNoSave, SHeader::DBNone | SHeader::DBNoWrite, tr("Codigo 3 Digitos"));
00050 mui_list->setinsercion(FALSE);
00051 mui_list->setDelete(FALSE);
00052 mui_list->setSortingEnabled(TRUE);
00053
00055 mui_listprovincias->setDBTableName("provincia");
00056 mui_listprovincias->setDBCampoId("idprovincia");
00057 mui_listprovincias->addSHeader("idprovincia", DBCampo::DBint, DBCampo::DBPrimaryKey, SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Provincia"));
00058 mui_listprovincias->addSHeader("idpais", DBCampo::DBint, DBCampo::DBNotNull , SHeader::DBNoView | SHeader::DBNoWrite, tr("Id. Pais"));
00059 mui_listprovincias->addSHeader("provincia", DBCampo::DBvarchar, DBCampo::DBNotNull, SHeader::DBNone, tr("Provincia"));
00060 mui_listprovincias->setinsercion(TRUE);
00061 mui_listprovincias->setDelete(TRUE);
00062 mui_listprovincias->setSortingEnabled(FALSE);
00063
00065 setTitleName(tr("Pais"));
00066 setDBTableName("pais");
00067 setDBCampoId("idpais");
00068 addDBCampo("idpais", DBCampo::DBint, DBCampo::DBPrimaryKey, tr("idpais"));
00069 addDBCampo("descpais", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Pais"));
00070 addDBCampo("cod2pais", DBCampo::DBvarchar, DBCampo::DBNothing, tr("Codigo 2 digitos"));
00071 addDBCampo("cod3pais", DBCampo::DBvarchar, DBCampo::DBNothing,tr("Codigo 3 digitos"));
00072
00073
00074 m_idpais = "0";
00075
00076 meteWindow(windowTitle(), this);
00077 pintar();
00078 dialogChanges_cargaInicial();
00079 _depura("END PaisView::PaisView", 0);
00080 }
00081
00082
00084
00086 PaisView::~PaisView() {
00087 _depura("PaisView::~PaisView", 0);
00088 _depura("END PaisView::~PaisView", 0);
00089 }
00090
00091
00093
00095 void PaisView::pintar() {
00096 _depura("PaisView::pintar", 10);
00097 mui_list->cargar("SELECT * FROM pais ORDER BY descpais");
00098 _depura("END PaisView::pintar", 0);
00099 }
00100
00101
00103
00105 void PaisView::on_mui_list_itemClicked(QTableWidgetItem *) {
00106 _depura("PaisView::on_mui_list_itemSelectionChanged", 0);
00108 QString previdpais = mui_list->DBvalue("idpais");
00109
00110 if (m_idpais != "0" && dialogChanges_hayCambios()) {
00111 if (QMessageBox::warning(this,
00112 tr("Guardar pais"),
00113 tr("Desea guardar los cambios?"),
00114 tr("&Guardar"), tr("&Cancelar"), 0, 0, 1) == 0) {
00115 on_mui_guardar_clicked();
00116 }
00117 }
00118 m_idpais = previdpais;
00119 mostrarplantilla();
00120 _depura("END PaisView::on_mui_list_itemSelectionChanged", 0);
00121 }
00122
00123
00125
00127 void PaisView::mostrarplantilla() {
00128 _depura("PaisView::mostrarplantilla", 0);
00129
00130 if (m_idpais != "0") {
00131 mui_datospais->setEnabled(TRUE);
00132 cargar(m_idpais);
00133 mui_descpais->setText(DBvalue("descpais"));
00134 mui_cod2pais->setText(DBvalue("cod2pais"));
00135 mui_cod3pais->setText(DBvalue("cod3pais"));
00136
00137 mui_listprovincias->cargar("SELECT * FROM provincia WHERE idpais=" + m_idpais);
00138
00139 dialogChanges_cargaInicial();
00140 }
00141 _depura("END PaisView::mostrarplantilla", 0);
00142 }
00143
00144
00146
00148 int PaisView::guardar() {
00149 _depura("PaisView::on_mui_guardar_clicked", 0);
00150 QString id;
00151 setDBvalue("descpais", mui_descpais->text());
00152 setDBvalue("cod2pais", mui_cod2pais->text());
00153 setDBvalue("cod3pais", mui_cod3pais->text());
00154 empresaBase()->begin();
00155 DBsave(id);
00156 mui_listprovincias->setColumnValue("idpais", id);
00157 mui_listprovincias->guardar();
00158 empresaBase()->commit();
00159 dialogChanges_cargaInicial();
00160 pintar();
00161 _depura("END PaisView::on_mui_guardar_clicked", 0);
00162 return 0;
00163 }
00164
00165
00167
00169 void PaisView::on_mui_crear_clicked() {
00170 _depura("PaisView::on_mui_crear_clicked", 0);
00171 try {
00173 if (dialogChanges_hayCambios()) {
00174 if (QMessageBox::warning(this,
00175 tr("Guardar pais"),
00176 tr("Desea guardar los cambios?"),
00177 QMessageBox::Ok,
00178 QMessageBox::Cancel) == QMessageBox::Ok) {
00179 on_mui_guardar_clicked();
00180 }
00181 }
00182
00183 QString query;
00184 query.sprintf("INSERT INTO pais (cod2pais, cod3pais, descpais) VALUES ('--', '---', 'Nuevo pais')");
00185 empresaBase()->begin();
00186 empresaBase()->ejecuta(query);
00187 empresaBase()->commit();
00188 pintar();
00189 mui_list->setCurrentItem(mui_list->rowCount(),1);
00190 mostrarplantilla();
00191 _depura("END PaisView::on_mui_crear_clicked", 0);
00192 } catch (...) {
00193 mensajeInfo(tr("Error al crear el banco"));
00194 empresaBase()->rollback();
00195 }
00196 }
00197
00198
00200
00202 void PaisView::on_mui_borrar_clicked() {
00203 _depura("PaisView::on_mui_borrar_clicked", 0);
00204 if (m_idpais == "" | m_idpais == "0" ) {
00205 mensajeInfo(tr("Debe seleccionar un elemento de la lista"));
00206 return;
00207 }
00208 switch (QMessageBox::warning(this,
00209 tr("Borrar pais"),
00210 tr("Se va a borrar el pais seleccionado.\nEsta operacion puede ocasionar perdida de datos."),
00211 tr("&Borrar"), tr("&Cancelar"), 0, 0, 1)) {
00212 case 0:
00213 QString query;
00214 try {
00215 query = "DELETE FROM pais WHERE idpais = " + m_idpais;
00216 empresaBase()->begin();
00217 empresaBase()->ejecuta(query);
00218 empresaBase()->commit();
00219 m_idpais = "0";
00220 pintar();
00221 mui_datospais->setDisabled(TRUE);
00222 } catch (...) {
00223 mensajeInfo(tr("Error al intentar borrar el pais"));
00224 empresaBase()->rollback();
00225 }
00226 }
00227 _depura("END PaisView::on_mui_borrar_clicked", 0);
00228 }
00229
00230