|
#!/usr/bin/env ruby
|
|
|
|
require 'rubygems'
|
|
require 'fox16'
|
|
require 'mysql'
|
|
include Fox
|
|
|
|
class Finestra0 < FXMainWindow
|
|
$var = []
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
|
|
FXMenuCommand.new(filemenu, "Archivi e Tabelle").connect(SEL_COMMAND) {
|
|
finestra = Finestra1.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(filemenu, "Gestione degli Acquisti")
|
|
FXMenuCommand.new(filemenu, "Gestione del Magazzino")
|
|
FXMenuCommand.new(filemenu, "Gestione dei Cespiti Ammortizzabili")
|
|
FXMenuCommand.new(filemenu, "Gestione della Produzione")
|
|
FXMenuCommand.new(filemenu, "Gestione del Personale Dipendente e Collaboratori")
|
|
FXMenuCommand.new(filemenu, "Gestione delle Vendite")
|
|
|
|
FXMenuCommand.new(filemenu, "Gestione dell\'Amministrazione").connect(SEL_COMMAND) {
|
|
finestra = Finestra8.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuSeparator.new(filemenu)
|
|
FXMenuCommand.new(filemenu, "Configurazione ambiente operativo")
|
|
FXMenuCommand.new(filemenu, "Informazioni").connect(SEL_COMMAND) {
|
|
FXMessageBox.information(self, MBOX_OK,
|
|
"Programma PIRAMIDE",
|
|
"versione 2010.03.30
|
|
autore: Guerra Antonio
|
|
data: marzo 2010")
|
|
}
|
|
FXMenuSeparator.new(filemenu)
|
|
FXMenuCommand.new(filemenu, "Fine lavoro\tCtl-Z", nil, getApp(), FXApp::ID_QUIT)
|
|
FXMenuTitle.new(menubar, "Menu Principale", nil, :popupMenu => filemenu)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
# Quit
|
|
def onCmdQuit(sender, sel, ptr)
|
|
getApp.exit(0)
|
|
end
|
|
|
|
# Start
|
|
def create
|
|
# Create window
|
|
super
|
|
# Show the main window
|
|
show(PLACEMENT_SCREEN)
|
|
end
|
|
end
|
|
|
|
class Finestra1 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar1 = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu1 = FXMenuPane.new(self)
|
|
archivitabellemenu1 = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle Comuni")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle degli Acquisti")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle del Magazzino")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle dei Cespiti Ammortizzabili")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle della Produzione")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle di Dipenenti e Collaboratori")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle delle Vendite")
|
|
FXMenuCommand.new(archivitabellemenu1, "Archivi e Tabelle dell\'Amministrazione").connect(SEL_COMMAND) {
|
|
finestra = Finestra108.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuTitle.new(menubar1, "Archivi e Tabelle", :popupMenu => archivitabellemenu1)
|
|
end
|
|
end
|
|
|
|
class Finestra108 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Archivio del piano dei conti").connect(SEL_COMMAND) {
|
|
finestra = Finestra10801.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Archivio dei clienti").connect(SEL_COMMAND) {
|
|
#finestra = Finestra10802.new(self)
|
|
finestra = Finestra00001.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Archivio dei fornitori").connect(SEL_COMMAND) {
|
|
finestra = Finestra10803.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Tabella delle condizioni di pagamento").connect(SEL_COMMAND) {
|
|
finestra = Finestra10804.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Tabella delle causali di contabilita\' generale").connect(SEL_COMMAND) {
|
|
finestra = Finestra10805.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Tabella delle causali iva").connect(SEL_COMMAND) {
|
|
finestra = Finestra10806.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Tabella dei libri contabili").connect(SEL_COMMAND) {
|
|
finestra = Finestra10807.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu, "Tabella dei tipi di documenti iva").connect(SEL_COMMAND) {
|
|
finestra = Finestra10809.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
|
|
FXMenuTitle.new(menubar, "Archivi e Tabelle dell\'Amministrazione", :popupMenu => archivitabellemenu)
|
|
end
|
|
end
|
|
|
|
class Finestra10801 < FXDialogBox #finestra per l'inserimento dei conti del piano dei conti
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#carica in memoria tutto il piano dei conti
|
|
carica_dati
|
|
#disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 400)
|
|
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "GESTIONE DEL PIANO DEI CONTI", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {ultimo_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {nuovo_record}
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceTipoConto = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90001.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceTipoConto.value = $var[0]
|
|
@descrizioneTipoConto.value = $var[1]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea1, "Codice tipo conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 128)
|
|
FXTextField.new(vLinea1, 1, :target => @codiceTipoConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER)
|
|
@descrizioneTipoConto = FXDataTarget.new("")
|
|
FXTextField.new(vLinea1, 30, :target => @descrizioneTipoConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceGruppo = FXDataTarget.new(0)
|
|
FXButton.new(vLinea2, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90003.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceGruppo.value = $var[0]
|
|
@descrizioneGruppo.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea2, "Codice gruppo", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 130)
|
|
gruppo = FXTextField.new(vLinea2, 3, :target => @codiceGruppo, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
@descrizioneGruppo = FXDataTarget.new("")
|
|
FXTextField.new(vLinea2, 30, :target => @descrizioneGruppo, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceConto = FXDataTarget.new(0)
|
|
@descrizioneConto = FXDataTarget.new("")
|
|
FXButton.new(vLinea3, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var = @codiceGruppo
|
|
ricerca = Finestra90004.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceConto.value = $var[0]
|
|
@descrizioneConto.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea3, "Codice conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 138)
|
|
FXTextField.new(vLinea3, 3, :target => @codiceConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
FXTextField.new(vLinea3, 30, :target => @descrizioneConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceSottoconto = FXDataTarget.new(0)
|
|
FXButton.new(vLinea4, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var[0] = @codiceGruppo
|
|
$var[1] = @codiceConto
|
|
ricerca = Finestra90005.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceSottoconto.value = $var[0]
|
|
@denominazioneConto.value = $var[1]
|
|
@codiceNaturaConto.value = $var[2]
|
|
@indice.value = $var[3]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea4, "Codice sottoconto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 95)
|
|
FXTextField.new(vLinea4, 6, :target => @codiceSottoconto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea5 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXButton.new(vLinea5, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
if $var[0] != nil
|
|
$var[0] = @denominazioneConto.value.gsub(/\W/, '').upcase
|
|
ricerca = Finestra90006.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@indice.value = $var[0]
|
|
$var = []
|
|
if @indice.value != nil
|
|
if @indice.value > "0"
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @indice.value == @riga[7]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
end
|
|
}
|
|
FXLabel.new(vLinea5, "Denominazione conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 122)
|
|
@denominazioneConto = FXDataTarget.new("")
|
|
FXTextField.new(vLinea5, 30, :target => @denominazioneConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
vLinea6 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXLabel.new(vLinea6, "Costante del conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 120)
|
|
@costanteConto = FXDataTarget.new("A")
|
|
FXTextField.new(vLinea6, 1, :target => @costanteConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceNaturaConto = FXDataTarget.new(0)
|
|
@descrizioneNaturaConto = FXDataTarget.new("")
|
|
FXButton.new(vLinea7, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90002.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceNaturaConto.value = $var[0]
|
|
@descrizioneNaturaConto.value = $var[1]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea7, "Codice natura conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 115)
|
|
FXTextField.new(vLinea7, 1, :target => @codiceNaturaConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER)
|
|
FXTextField.new(vLinea7, 30, :target => @descrizioneNaturaConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
@indice = FXDataTarget.new("")
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
azzera_variabili
|
|
end
|
|
|
|
def primo_record
|
|
@contatore = 0
|
|
@scelta.num_rows == 0 ? azzera_variabili : assegna_variabili
|
|
end
|
|
|
|
def precedente_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore - 1 <0 ? @contatore = 0 : @contatore = @contatore -1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def successivo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore >= ("#{@scelta.num_rows}".to_i - 1) ? @contatore = ("#{@scelta.num_rows}".to_i - 1) : @contatore = @contatore + 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def ultimo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore = ("#{@scelta.num_rows}".to_i - 1)
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def nuovo_record
|
|
azzera_variabili
|
|
@indice.value = 0
|
|
end
|
|
|
|
def vai_a_record
|
|
codiceGruppo = @codiceGruppo.value.to_i
|
|
codiceConto = @codiceConto.value.to_i
|
|
codiceSottoconto = @codiceSottoconto.value.to_i
|
|
@indice.value = (codiceGruppo * 1000000000 + codiceConto * 1000000 + codiceSottoconto).to_s
|
|
|
|
if @indice.value > "0"
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @indice.value == @riga[7]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1 if @contatore >0
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def registra
|
|
registra = true
|
|
|
|
if @codiceTipoConto.value.to_i < 1 or @codiceTipoConto.value.to_i > 4
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice Tipo Conto", "valore '#{@codiceTipoConto.value}' non ammesso per questo campo")
|
|
end
|
|
|
|
if @codiceTipoConto.value.to_i == 1 and (@codiceGruppo.value.to_i == 0 or @codiceConto.value.to_i != 0 or @codiceSottoconto.value.to_i != 0)
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice Tipo Conto", "codici conto e sottoconto non corretti")
|
|
end
|
|
|
|
if @codiceTipoConto.value.to_i == 2 and (@codiceGruppo.value.to_i == 0 or @codiceConto.value.to_i == 0 or @codiceSottoconto.value.to_i != 0)
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice Tipo Conto", "codici conto e sottoconto non corretti")
|
|
end
|
|
|
|
if @codiceTipoConto.value.to_i == 3 and (@codiceGruppo.value.to_i == 0 or @codiceConto.value.to_i == 0 or @codiceSottoconto.value.to_i == 0)
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice Tipo Conto", "codici conto e sottoconto non corretti")
|
|
end
|
|
|
|
if @codiceNaturaConto.value.to_i < 1 or @codiceNaturaConto.value.to_i > 4
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice Natura Conto", "valore '#{@codiceNaturaConto.value}' non corretto per questo campo")
|
|
registra = false
|
|
end
|
|
|
|
if registra == true
|
|
indice = (@codiceGruppo.value.to_i * 1000000000 + @codiceConto.value.to_i * 1000000 + @codiceSottoconto.value.to_i).to_s
|
|
@denominazioneConto.value = @conn.escape_string(@denominazioneConto.value).upcase
|
|
sigla = @denominazioneConto.value.gsub(/\W/, '').upcase
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("REPLACE piano_dei_conti VALUES ('#{@codiceTipoConto.value.to_s}','#{@codiceGruppo.value.to_s}','#{@codiceConto.value.to_s}','#{@codiceSottoconto.value.to_s}','#{@costanteConto.value}','#{@denominazioneConto.value}','#{@codiceNaturaConto.value.to_s}', '#{indice}', '#{sigla}')")
|
|
@conn.commit
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.rollback
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
|
|
def cancella_record
|
|
if (@contatore <= ("#{@scelta.num_rows}".to_i - 1)) then
|
|
messaggio = FXMessageBox.question(
|
|
self,
|
|
MBOX_YES_NO,
|
|
"Attenzione !!!",
|
|
"Si stanno cancellando dei dati: confermare l\'operazione ?")
|
|
if messaggio == MBOX_CLICKED_YES
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("DELETE FROM piano_dei_conti WHERE indice = '#{@indice.value}'")
|
|
@conn.commit
|
|
@conn.close
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
end
|
|
|
|
def azzera_variabili
|
|
@contatore = 0
|
|
indice = 0
|
|
@codiceTipoConto.value = 0
|
|
@descrizioneTipoConto.value = ""
|
|
@codiceGruppo.value = 0
|
|
@descrizioneGruppo.value = ""
|
|
@codiceConto.value = 0
|
|
@descrizioneConto.value = ""
|
|
@codiceSottoconto.value = 0
|
|
@costanteConto.value = "A"
|
|
@denominazioneConto.value = ""
|
|
@codiceNaturaConto.value = 0
|
|
@descrizioneNaturaConto.value = ""
|
|
@indice = FXDataTarget.new("")
|
|
end
|
|
|
|
def assegna_variabili
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@codiceTipoConto.value = @riga[0].to_i
|
|
@codiceGruppo.value = @riga[1].to_i
|
|
@codiceConto.value = @riga[2].to_i
|
|
@codiceSottoconto.value = @riga[3].to_i
|
|
@costanteConto.value = @riga[4]
|
|
@denominazioneConto.value = @riga[5]
|
|
@codiceNaturaConto.value = @riga[6].to_i
|
|
@indice.value = @riga[7]
|
|
|
|
tipoConto = [0,"GRUPPO","CONTO","SOTTOCONTO"]
|
|
@descrizioneTipoConto.value = tipoConto[@codiceTipoConto.value.to_i]
|
|
naturaConto = [0,"CONTO DI REDDITO","CONTO PATRIMONIALE","CONTO D\'ORDINE","CONTO RIEPILOGATIVO"]
|
|
@descrizioneNaturaConto.value = naturaConto[@codiceNaturaConto.value.to_i]
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
scelta = @conn.query("SELECT * FROM piano_dei_conti WHERE indice = ('#{@codiceGruppo.value}'*1000000000)")
|
|
scelta1 = @conn.query("SELECT * FROM piano_dei_conti WHERE indice = ('#{@codiceGruppo.value}'*1000000000 + '#{@codiceConto.value}'*1000000)")
|
|
|
|
@conn.close
|
|
|
|
@descrizioneGruppo.value = ""
|
|
@descrizioneConto.value = ""
|
|
if "#{scelta.num_rows}".to_i > 0
|
|
riga = scelta.data_seek(0)
|
|
riga = scelta.fetch_row
|
|
@descrizioneGruppo.value = riga[5]
|
|
end
|
|
|
|
@descrizioneConto.value = ''
|
|
if @codiceConto.value != ""
|
|
riga = scelta1.data_seek(0)
|
|
riga = scelta1.fetch_row
|
|
@descrizioneConto.value = riga[5]
|
|
end
|
|
end
|
|
|
|
def carica_dati
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM piano_dei_conti")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue
|
|
@conn.close
|
|
print "error code: ", e.errno, "/n"
|
|
print "Error message: ", e.error, "/n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra10802 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
end
|
|
end
|
|
|
|
class Finestra10803 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
end
|
|
end
|
|
|
|
class Finestra10804 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
end
|
|
end
|
|
|
|
class Finestra10805 < FXDialogBox #crea la finestra per gestire le causali di contabilita' generale
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#carica in memoria tutta la tabella delle causali di contabilita'
|
|
carica_dati
|
|
#disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 460)
|
|
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "GESTIONE DELLE CAUSALI DI CONTABILITA\' GENERALE", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {ultimo_record}
|
|
FXButton.new(vTesta1, 'Vai al record...', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {vai_a_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {nuovo_record}
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codice = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90011.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
vai_a_record
|
|
cerca_descrizioni
|
|
$var = []
|
|
}
|
|
|
|
FXLabel.new(vLinea1, "Codice causale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 150)
|
|
FXTextField.new(vLinea1, 3, :target => @codice, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@descrizioneCausale = FXDataTarget.new("")
|
|
FXButton.new(vLinea2, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var[0] = @descrizioneCausale.value.gsub(/\W/, '').upcase
|
|
ricerca = Finestra90012.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
vai_a_record
|
|
cerca_descrizioni
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea2, "Descrizione della causale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 103)
|
|
FXTextField.new(vLinea2, 25, :target => @descrizioneCausale, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_LEFT)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@segno = FXDataTarget.new("")
|
|
FXLabel.new(vLinea3, "Segno del movimento (D, A, ' ')", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 73)
|
|
FXTextField.new(vLinea3, 1, :target => @segno, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceLibro = FXDataTarget.new(0)
|
|
@descrizioneLibro = FXDataTarget.new("")
|
|
FXButton.new(vLinea4, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var[0] = @codiceLibro.value
|
|
ricerca = Finestra90013.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceLibro.value = $var[0]
|
|
@descrizioneLibro.value = $var[1]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea4, "Codice del libro giornale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 107)
|
|
FXTextField.new(vLinea4, 3, :target => @codiceLibro, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
FXTextField.new(vLinea4, 80, :target => @descrizioneLibro, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@partite = FXDataTarget.new("")
|
|
FXLabel.new(vLinea7, "Gestione delle partite (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 89)
|
|
FXTextField.new(vLinea7, 1, :target => @partite, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
vLinea8 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@fiscale = FXDataTarget.new("")
|
|
FXLabel.new(vLinea8, "Gestione delle ritenute fiscali (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 54)
|
|
FXTextField.new(vLinea8, 1, :target => @fiscale, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
vLinea9 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@sociale = FXDataTarget.new("")
|
|
FXLabel.new(vLinea9, "Gestione delle ritenute sociali (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 52)
|
|
FXTextField.new(vLinea9, 1, :target => @sociale, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
vLinea10 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@reverseCharge = FXDataTarget.new("")
|
|
FXLabel.new(vLinea10, "Registrazione reverse charge (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 50)
|
|
FXTextField.new(vLinea10, 1, :target => @reverseCharge, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
vLinea11 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@soloIva = FXDataTarget.new("")
|
|
FXLabel.new(vLinea11, "Registrazione solo su registro iva (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 32)
|
|
FXTextField.new(vLinea11, 1, :target => @soloIva, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 45)
|
|
azzera_variabili
|
|
end
|
|
|
|
def primo_record
|
|
@contatore = 0
|
|
@scelta.num_rows == 0 ? azzera_variabili : assegna_variabili
|
|
end
|
|
|
|
def precedente_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore - 1 <0 ? @contatore = 0 : @contatore = @contatore -1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def successivo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore >= ("#{@scelta.num_rows}".to_i - 1) ? @contatore = ("#{@scelta.num_rows}".to_i - 1) : @contatore = @contatore + 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def ultimo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore = ("#{@scelta.num_rows}".to_i - 1)
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def nuovo_record
|
|
azzera_variabili
|
|
@codice.value = 0
|
|
end
|
|
|
|
def vai_a_record
|
|
if @codice.value.to_i > 0
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
until @codice.value == @riga[0]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1 if @contatore >0
|
|
assegna_variabili
|
|
#end
|
|
end
|
|
end
|
|
|
|
|
|
def registra
|
|
#~ alla variabile registra si assegna il valore vero.
|
|
#~ Un risultato falso di un qualsiasi test ne cambiera' il valore in falso, impedendo la registrazione dei dati in memoria.
|
|
registra = true
|
|
@segno.value = @segno.value.upcase
|
|
@descrizioneCausale.value = @conn.escape_string(@descrizioneCausale.value).upcase
|
|
sigla = @descrizioneCausale.value.gsub(/\W/, '').upcase
|
|
@partite.value = @partite.value.to_s.upcase
|
|
@fiscale.value = @fiscale.value.to_s.upcase
|
|
@sociale.value = @sociale.value.to_s.upcase
|
|
@reverseCharge.value = @reverseCharge.value.to_s.upcase
|
|
@soloIva.value = @soloIva.value.to_s.upcase
|
|
@partite.value == 'S' ? @partite.value = 1 : @partite.value = 0
|
|
@fiscale.value == 'S' ? @fiscale.value = 1: @fiscale.value = 0
|
|
@sociale.value == 'S' ? @sociale.value = 1: @sociale.value = 0
|
|
@reverseCharge.value == 'S' ? @reverseCharge.value = 1: @reverseCharge.value = 0
|
|
@soloIva.value == 'S' ? @soloIva.value = 1: @soloIva.value = 0
|
|
|
|
if @codice.value.to_i == 0
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice causale", "valore '#{@codice.value}' non ammesso per questo campo")
|
|
end
|
|
if @descrizioneCausale.value == ""
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Descrizione causale", "Manca la descrizione della causale")
|
|
end
|
|
|
|
if (@segno.value != "D" and @segno.value != "A" and @segno.value != "")
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Segno del movimento", "Il valore '#{@segno.value}' non e' ammesso")
|
|
end
|
|
|
|
if registra == true
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
#~ @conn.query("REPLACE causali_coge VALUES ('#{@codice.value.to_s}','#{@descrizioneCausale.value}','#{@segno.value}','#{@codiceLibro.value.to_s}','#{@codiceLibroIva.value.to_s}','#{@codiceDocumento.value.to_s}', '#{@partite.value}', '#{@fiscale.value}', '#{@sociale.value}','#{@reverseCharge.value}','#{@soloIva.value}','#{sigla}')")
|
|
@conn.query("REPLACE causali_coge VALUES ('#{@codice.value.to_s}','#{@descrizioneCausale.value}','#{@segno.value}','#{@codiceLibro.value.to_s}', '#{@partite.value}', '#{@fiscale.value}', '#{@sociale.value}','#{@reverseCharge.value}','#{@soloIva.value}','#{sigla}')")
|
|
@conn.commit
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.rollback
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
|
|
def cancella_record
|
|
if (@contatore <= ("#{@scelta.num_rows}".to_i - 1))
|
|
messaggio = FXMessageBox.question(
|
|
self,
|
|
MBOX_YES_NO,
|
|
"Attenzione !!!",
|
|
"Si stanno cancellando dei dati: confermare l\'operazione ?")
|
|
if messaggio == MBOX_CLICKED_YES
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("DELETE FROM causali_coge WHERE codice = '#{@codice.value}'")
|
|
@conn.commit
|
|
@conn.close
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
end
|
|
|
|
def azzera_variabili
|
|
@contatore = 0
|
|
@codice.value = 0
|
|
@descrizioneCausale.value = ""
|
|
@segno.value = ""
|
|
@codiceLibro.value = 0
|
|
@descrizioneLibro.value = ""
|
|
@partite.value = "N"
|
|
@fiscale.value = "N"
|
|
@sociale.value = "N"
|
|
@reverseCharge.value = "N"
|
|
@soloIva.value = "N"
|
|
end
|
|
|
|
def assegna_variabili
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@codice.value = @riga[0].to_i
|
|
@descrizioneCausale.value = @riga[1]
|
|
@segno.value = @riga[2]
|
|
@codiceLibro.value = @riga[3].to_i
|
|
@riga[4] == '0' ? @partite.value = 'N' : @partite.value = 'S'
|
|
@riga[5] == '0' ? @fiscale.value = 'N' : @fiscale.value = 'S'
|
|
@riga[6] ? @sociale.value = 'N' : @sociale.value = 'S'
|
|
@riga[7] ? @reverseCharge.value = 'N' : @reverseCharge.value = 'S'
|
|
@riga[8] ? @soloIva.value = 'N' : @soloIva.value = 'S'
|
|
cerca_descrizioni
|
|
end
|
|
|
|
def cerca_descrizioni
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
scelta = @conn.query("SELECT * FROM libro_contabile WHERE codice = '#{@codiceLibro.value}'")
|
|
@conn.close
|
|
|
|
if "#{scelta.num_rows}" > '0'
|
|
riga = scelta.data_seek(0)
|
|
riga = scelta.fetch_row
|
|
@descrizioneLibro.value = riga[1]
|
|
else
|
|
@descrizioneLibro.value = ""
|
|
end
|
|
end
|
|
|
|
def carica_dati
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_coge")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.close
|
|
print "error code: ", e.errno, "/n"
|
|
print "Error message: ", e.error, "/n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra10806 < FXDialogBox #finestra per l'inserimento delle causali iva
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#~ #carica in memoria tutto il piano dei conti
|
|
carica_dati
|
|
#~ #disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 450)
|
|
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "GESTIONE TABELLA DELLE CAUSALI IVA", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {ultimo_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {nuovo_record}
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codice = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90019.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
@descrizione.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea1, "Codice causale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 125)
|
|
FXTextField.new(vLinea1, 3, :target => @codice, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@descrizione = FXDataTarget.new("")
|
|
FXButton.new(vLinea2, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90020.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
@descrizione.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea2, "Descrizione della causale iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 62)# :padLeft => 26, :padRight => 38)
|
|
FXTextField.new(vLinea2, 20, :target => @descrizione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@libroIva = FXDataTarget.new(0)
|
|
FXButton.new(vLinea3, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90016.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@libroIva.value = $var[0]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea3, "Codice libro iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 124)
|
|
FXTextField.new(vLinea3, 3, :target => @libroIva, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@documentoIva = FXDataTarget.new(0)
|
|
FXButton.new(vLinea4, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90017.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@documentoIva.value = $var[0]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea4, "Codice del documento iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 73)
|
|
FXTextField.new(vLinea4, 3, :target => @documentoIva, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea5 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceOperazione = FXDataTarget.new(0)
|
|
FXButton.new(vLinea5, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90018.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceOperazione.value = $var[0]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea5, "Codice della operazione iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 65)
|
|
FXTextField.new(vLinea5, 3, :target => @codiceOperazione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea6 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@aliquotaIva = FXDataTarget.new(0.00)
|
|
FXLabel.new(vLinea6, "Aliquota iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 26, :padRight => 138)
|
|
FXTextField.new(vLinea6, 5, :target => @aliquotaIva, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_REAL|JUSTIFY_RIGHT)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@ivaIndeducibile = FXDataTarget.new(0.00)
|
|
FXLabel.new(vLinea7, "Percentuale di iva non deducibile", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 26, :padRight => 37)
|
|
FXTextField.new(vLinea7, 5, :target => @ivaIndeducibile, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_REAL|JUSTIFY_RIGHT)
|
|
|
|
vLinea8 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@calcoloPlafond = FXDataTarget.new("")
|
|
FXLabel.new(vLinea8, "Calcolo plafond (S/N)", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 24, :padRight => 32)
|
|
FXTextField.new(vLinea8, 1, :target => @calcoloPlafond, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|JUSTIFY_RIGHT)
|
|
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
azzera_variabili
|
|
end
|
|
|
|
def primo_record
|
|
@contatore = 0
|
|
@scelta.num_rows == 0 ? azzera_variabili : assegna_variabili
|
|
end
|
|
|
|
def precedente_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore - 1 <0 ? @contatore = 0 : @contatore = @contatore -1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def successivo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore >= ("#{@scelta.num_rows}".to_i - 1) ? @contatore = ("#{@scelta.num_rows}".to_i - 1) : @contatore = @contatore + 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def ultimo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore = ("#{@scelta.num_rows}".to_i - 1)
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def nuovo_record
|
|
azzera_variabili
|
|
end
|
|
|
|
def vai_a_record
|
|
if @codice.value.to_i != 0
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @codice.value == @riga[0]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1 if @contatore >0
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
|
|
def registra
|
|
#~ alla variabile registra si assegna il valore vero.
|
|
#~ Un risultato falso di un qualsiasi test ne cambiera' il valore in falso, impedendo la registrazione dei dati in memoria.
|
|
@descrizione.value = @descrizione.value.to_s.upcase
|
|
@calcoloPlafond.value = @calcoloPlafond.value.to_s.upcase
|
|
@calcoloPlafond.value == 'S' ? @calcoloPlafond.value = 1 : @calcoloPlafond.value = 0
|
|
|
|
registra = true
|
|
if @codice.value.to_i == 0
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice causale iva", "valore '#{@codice.value}' non ammesso per questo campo")
|
|
end
|
|
|
|
if registra == true
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("REPLACE causali_iva VALUES ('#{@codice.value.to_s}','#{@descrizione.value}','#{@libroIva.value.to_s}','#{@documentoIva.value.to_s}','#{@codiceOperazione.value.to_s}','#{@aliquotaIva.value}', '#{@ivaIndeducibile.value}', '#{@calcoloPlafond.value}')")
|
|
@conn.commit
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.rollback
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
|
|
def cancella_record
|
|
if (@contatore <= ("#{@scelta.num_rows}".to_i - 1))
|
|
messaggio = FXMessageBox.question(
|
|
self,
|
|
MBOX_YES_NO,
|
|
"Attenzione !!!",
|
|
"Si stanno cancellando dei dati: confermare l\'operazione ?")
|
|
if messaggio == MBOX_CLICKED_YES
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("DELETE FROM libro_contabile WHERE codice = '#{@codice.value}'")
|
|
@conn.commit
|
|
@conn.close
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
end
|
|
|
|
def azzera_variabili
|
|
@contatore = 0
|
|
@codice.value = 0
|
|
@descrizione.value = ""
|
|
@libroIva.value = 0
|
|
@documentoIva.value = 0
|
|
@codiceOperazione.value = 0
|
|
@aliquotaIva.value = 0.00
|
|
@ivaIndeducibile.value = 0.00
|
|
@calcoloPlafond.value = "N"
|
|
end
|
|
|
|
def assegna_variabili
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@codice.value = @riga[0].to_i
|
|
@descrizione.value = @riga[1]
|
|
@libroIva.value = @riga[2].to_i
|
|
@documentoIva.value = @riga[3].to_i
|
|
@codiceOperazione.value = @riga[4].to_i
|
|
@aliquotaIva.value = @riga[5]
|
|
@ivaIndeducibile.value = @riga[6].to_i
|
|
@riga[7] == '0' ? @calcoloPlafond.value = 'N' : @calcoloPlafond.value = 'S'
|
|
end
|
|
|
|
def carica_dati
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_iva")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue
|
|
@conn.close
|
|
print "error code: ", e.errno, "/n"
|
|
print "Error message: ", e.error, "/n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra10807 < FXDialogBox #finestra per l'inserimento dei tipi di libri contabili
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#carica in memoria tutto il piano dei conti
|
|
carica_dati
|
|
#disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 450)
|
|
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "GESTIONE TABELLA DEI LIBRI CONTABILI", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {ultimo_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {nuovo_record}
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codice = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90015.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
@descrizione.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea1, "Codice del libro contabile", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 128)
|
|
FXTextField.new(vLinea1, 3, :target => @codice, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@descrizione = FXDataTarget.new("")
|
|
FXLabel.new(vLinea2, "Descrizione del libro contabile", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 26, :padRight => 104)
|
|
FXTextField.new(vLinea2, 80, :target => @descrizione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@tipoLibro = FXDataTarget.new(0)
|
|
FXButton.new(vLinea3, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90014.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@tipoLibro.value = $var[0]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea3, "Codice tipo libro contabile", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 124)
|
|
FXTextField.new(vLinea3, 1, :target => @tipoLibro, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@dataUltimaRegistrazione = FXDataTarget.new(0)
|
|
FXLabel.new(vLinea4, "Data ultima registrazione", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 128)
|
|
FXTextField.new(vLinea4, 10, :target => @dataUltimaRegistrazione, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE|JUSTIFY_RIGHT)
|
|
|
|
vLinea5 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@numeroUltimaRegistrazione = FXDataTarget.new(0)
|
|
FXLabel.new(vLinea5, "Numero ultima registrazione", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 114)
|
|
FXTextField.new(vLinea5, 10, :target => @numeroUltimaRegistrazione, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE|JUSTIFY_RIGHT)
|
|
|
|
vLinea6 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@dataUltimaStampa = FXDataTarget.new(0)
|
|
FXLabel.new(vLinea6, "Data ultima stampa", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 154)
|
|
FXTextField.new(vLinea6, 10, :target => @dataUltimaStampa, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE|JUSTIFY_RIGHT)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@numeroUltimaStampa = FXDataTarget.new(0)
|
|
FXLabel.new(vLinea7, "Numero ultima stampa", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 141)
|
|
FXTextField.new(vLinea7, 10, :target => @numeroUltimaStampa, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE|JUSTIFY_RIGHT)
|
|
|
|
vLinea8 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@ultimoNumeroProgressivo = FXDataTarget.new(0)
|
|
FXLabel.new(vLinea8, "Ultimo numero progressivo", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 120)
|
|
FXTextField.new(vLinea8, 10, :target => @ultimoNumeroProgressivo, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE|JUSTIFY_RIGHT)
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
azzera_variabili
|
|
end
|
|
|
|
def primo_record
|
|
@contatore = 0
|
|
@scelta.num_rows == 0 ? azzera_variabili : assegna_variabili
|
|
end
|
|
|
|
def precedente_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore - 1 <0 ? @contatore = 0 : @contatore = @contatore -1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def successivo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore >= ("#{@scelta.num_rows}".to_i - 1) ? @contatore = ("#{@scelta.num_rows}".to_i - 1) : @contatore = @contatore + 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def ultimo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore = ("#{@scelta.num_rows}".to_i - 1)
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def nuovo_record
|
|
azzera_variabili
|
|
end
|
|
|
|
def vai_a_record
|
|
if @codice.value.to_i != 0
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @codice.value == @riga[0]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1 if @contatore >0
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
|
|
def registra
|
|
#~ alla variabile registra si assegna il valore vero.
|
|
#~ Un risultato falso di un qualsiasi test ne cambiera' il valore in falso, impedendo la registrazione dei dati in memoria.
|
|
@dataUltimaRegistrazione.value = @dataUltimaRegistrazione.value.to_i == 0 ? 0 : @dataUltimaRegistrazione.value
|
|
@numeroUltimaRegistrazione.value = @numeroUltimaRegistrazione.value.to_s
|
|
@dataUltimaStampa.value = @dataUltimaStampa.value.to_i == 0 ? 0 : @dataUltimaStampa.value
|
|
@numeroUltimaStampa.value = @numeroUltimaStampa.value.to_s
|
|
@ultimoNumeroProgressivo.value = @ultimoNumeroProgressivo.to_s
|
|
@descrizione.value = @descrizione.value.to_s.upcase
|
|
|
|
registra = true
|
|
if @codice.value.to_i == 0
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice libro contabile", "valore '#{@codice.value}' non ammesso per questo campo")
|
|
end
|
|
|
|
if @tipoLibro.value.to_i == 0 or @tipoLibro.value.to_i > 3
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice tipo libro contabile", "valore '#{@tipoLibro.value}' non ammesso per questo campo")
|
|
end
|
|
|
|
if registra == true
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("REPLACE libro_contabile VALUES ('#{@codice.value.to_s}','#{@descrizione.value}','#{@tipoLibro.value.to_s}','#{@dataUltimaRegistrazione.value == 0 ? '0000-00-00' : @dataUltimaRegistrazione.value}','#{@numeroUltimaRegistrazione.value.to_s}','#{@dataUltimaStampa.value == 0 ? '0000-00-00' : @dataUltimaStampa.value}','#{@numeroUltimaStampa.value.to_s}','#{@ultimoNumeroProgressivo.value.to_s}')")
|
|
@conn.commit
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.rollback
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
|
|
def cancella_record
|
|
if (@contatore <= ("#{@scelta.num_rows}".to_i - 1))
|
|
messaggio = FXMessageBox.question(
|
|
self,
|
|
MBOX_YES_NO,
|
|
"Attenzione !!!",
|
|
"Si stanno cancellando dei dati: confermare l\'operazione ?")
|
|
if messaggio == MBOX_CLICKED_YES
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("DELETE FROM libro_contabile WHERE codice = '#{@codice.value}'")
|
|
@conn.commit
|
|
@conn.close
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
end
|
|
|
|
def azzera_variabili
|
|
@contatore = 0
|
|
@codice.value = 0
|
|
@descrizione.value = ""
|
|
@tipoLibro.value = 0
|
|
@dataUltimaRegistrazione.value = 0
|
|
@numeroUltimaRegistrazione.value = 0
|
|
@dataUltimaStampa.value = 0
|
|
@numeroUltimaStampa.value = 0
|
|
@ultimoNumeroProgressivo.value = 0
|
|
end
|
|
|
|
def assegna_variabili
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@codice.value = @riga[0].to_i
|
|
@descrizione.value = @riga[1]
|
|
@tipoLibro.value = @riga[2].to_i
|
|
@dataUltimaRegistrazione.value = @riga[3]
|
|
@numeroUltimaRegistrazione.value = @riga[4].to_i
|
|
@dataUltimaStampa.value = @riga[5]
|
|
@numeroUltimaStampa.value = @riga[6].to_i
|
|
@ultimoNumeroProgressivo.value = @riga[7].to_i
|
|
end
|
|
|
|
def carica_dati
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM libro_contabile")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue
|
|
@conn.close
|
|
print "error code: ", e.errno, "/n"
|
|
print "Error message: ", e.error, "/n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra10809 < FXDialogBox #finestra per l'inserimento dei tipi di documenti iva
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#carica in memoria tutto il piano dei conti
|
|
carica_dati
|
|
#disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 250)
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "GESTIONE TABELLA DELLE OPERAZIONI IVA", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {ultimo_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) {nuovo_record}
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codice = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90018.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codice.value = $var[0]
|
|
@descrizione.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea1, "Codice del tipo di operazione iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 128)
|
|
FXTextField.new(vLinea1, 3, :target => @codice, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@descrizione = FXDataTarget.new("")
|
|
FXLabel.new(vLinea2, "Descrizione del tipo di operazione iva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 26, :padRight => 104)
|
|
FXTextField.new(vLinea2, 30, :target => @descrizione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) {registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
azzera_variabili
|
|
end
|
|
|
|
def primo_record
|
|
@contatore = 0
|
|
@scelta.num_rows == 0 ? azzera_variabili : assegna_variabili
|
|
end
|
|
|
|
def precedente_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore - 1 <0 ? @contatore = 0 : @contatore = @contatore -1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def successivo_record
|
|
if @scelta.num_rows == 0
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore >= ("#{@scelta.num_rows}".to_i - 1) ? @contatore = ("#{@scelta.num_rows}".to_i - 1) : @contatore = @contatore + 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def ultimo_record
|
|
if @scelta.num_rows == 0 then
|
|
@contatore = 0
|
|
azzera_variabili
|
|
else
|
|
@contatore = ("#{@scelta.num_rows}".to_i - 1)
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def nuovo_record
|
|
azzera_variabili
|
|
end
|
|
|
|
def vai_a_record
|
|
if @codice.value.to_i != 0
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @codice.value == @riga[0]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1 if @contatore >0
|
|
assegna_variabili
|
|
end
|
|
end
|
|
|
|
def registra
|
|
#~ alla variabile registra si assegna il valore vero.
|
|
#~ Un risultato falso di un qualsiasi test ne cambiera' il valore in falso, impedendo la registrazione dei dati in memoria.
|
|
@descrizione.value = @descrizione.value.to_s.upcase
|
|
|
|
registra = true
|
|
if @codice.value.to_i == 0
|
|
registra = false
|
|
FXMessageBox.warning(self, MBOX_OK, "Codice operazione iva", "valore '#{@codice.value}' non ammesso per questo campo")
|
|
end
|
|
|
|
if registra == true
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("REPLACE operazione_iva VALUES ('#{@codice.value.to_s}','#{@descrizione.value}')")
|
|
@conn.commit
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.rollback
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
|
|
def cancella_record
|
|
if (@contatore <= ("#{@scelta.num_rows}".to_i - 1))
|
|
messaggio = FXMessageBox.question(
|
|
self,
|
|
MBOX_YES_NO,
|
|
"Attenzione !!!",
|
|
"Si stanno cancellando dei dati: confermare l\'operazione ?")
|
|
if messaggio == MBOX_CLICKED_YES
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@conn.autocommit(0)
|
|
@conn.query("DELETE FROM operazione_iva WHERE codice = '#{@codice.value}'")
|
|
@conn.commit
|
|
@conn.close
|
|
carica_dati
|
|
azzera_variabili
|
|
end
|
|
end
|
|
end
|
|
|
|
def azzera_variabili
|
|
@contatore = 0
|
|
@codice.value = 0
|
|
@descrizione.value = ""
|
|
end
|
|
|
|
def assegna_variabili
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@codice.value = @riga[0].to_i
|
|
@descrizione.value = @riga[1]
|
|
end
|
|
|
|
def carica_dati
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM operazione_iva")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue
|
|
@conn.close
|
|
print "error code: ", e.errno, "/n"
|
|
print "Error message: ", e.error, "/n"
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra8 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar1 = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu1 = FXMenuPane.new(self)
|
|
archivitabellemenu1 = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu1, "Scritture di Prima Nota").connect(SEL_COMMAND) {
|
|
finestra = Finestra801.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu1, "Interrogazioni e Stampe").connect(SEL_COMMAND) {
|
|
finestra = Finestra802.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu1, "Bilanci di Esercizio").connect(SEL_COMMAND) {
|
|
finestra = Finestra803.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu1, "Servizi Finanziari ed Amministrativi").connect(SEL_COMMAND) {
|
|
finestra = Finestra804.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuCommand.new(archivitabellemenu1, "Chiusura/Apertura Esercizi").connect(SEL_COMMAND) {
|
|
finestra = Finestra805.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuTitle.new(menubar1, "Gestione dell\'Amministrazione", :popupMenu => archivitabellemenu1)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
end
|
|
|
|
class Finestra801 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota di Contabilita\' Generale").connect(SEL_COMMAND) {
|
|
finestra = Finestra80101.new(self)
|
|
finestra.execute(PLACEMENT_CURSOR)
|
|
}
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota Fornitori")
|
|
FXMenuCommand.new(archivitabellemenu, "Controllo Fatture / Documenti di Trasporto")
|
|
FXMenuCommand.new(archivitabellemenu, "Pagamenti a Fornitori")
|
|
FXMenuCommand.new(archivitabellemenu, "Avvisi di Pagamento da Fornitori")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota Clienti")
|
|
FXMenuCommand.new(archivitabellemenu, "Incassi da Clienti")
|
|
FXMenuCommand.new(archivitabellemenu, "Avvisi di Pagamento a Clienti")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota Finanziamento Crediti")
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota Portafoglio Ri.Ba.")
|
|
FXMenuCommand.new(archivitabellemenu, "Prima Nota Fideiussioni")
|
|
FXMenuTitle.new(menubar, "Prime Note", :popupMenu => archivitabellemenu)
|
|
end
|
|
end
|
|
|
|
class Finestra80101 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 700)
|
|
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 10, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vTesta = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta, 'Ricerca ...', :padLeft => 5, :padRight => 5)
|
|
FXButton.new(vTesta, 'Primo record', :padLeft => 5, :padRight => 5)
|
|
FXButton.new(vTesta, 'Record precedente', :padLeft => 5, :padRight => 5)
|
|
FXButton.new(vTesta, 'Record successivo', :padLeft => 5, :padRight => 5)
|
|
FXButton.new(vTesta, 'Ultimo record', :padLeft => 5, :padRight => 5)
|
|
FXButton.new(vTesta, 'Nuovo record', :padLeft => 5, :padRight => 5)
|
|
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
@dataRegistrazione = FXDataTarget.new("")
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXLabel.new(vLinea1, "Data di registrazione", nil, :opts => JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 100)
|
|
FXTextField.new(vLinea1, 10, :target => @dataRegistrazione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceCausale, @descrizioneCausale = FXDataTarget.new("")
|
|
FXButton.new(vLinea2, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0)
|
|
FXLabel.new(vLinea2, "Codice causale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 128)
|
|
FXTextField.new(vLinea2, 3, :target => @codiceCausale, :selector => FXDataTarget::ID_VALUE, :opts =>FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER)
|
|
FXTextField.new(vLinea2, 50, @descrizioneCausale, FXDataTarget::ID_VALUE, FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_READONLY)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXLabel.new(vLinea3, "Estremi del documento:", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@numeroDocumento = FXDataTarget.new("")
|
|
FXLabel.new(vLinea4, "Numero", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 105, :padRight => 85)
|
|
FXTextField.new(vLinea4, 10, :target => @numeroDocumento, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea5 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@dataDocumento = FXDataTarget.new("")
|
|
FXLabel.new(vLinea5, "Data", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 105, :padRight => 98)
|
|
FXTextField.new(vLinea5, 10, :target => @dataDocumento, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
gruppo3 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea61 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceGruppo = FXDataTarget.new("")
|
|
FXButton.new(vLinea61, '?', :padLeft => 5, :padRight => 5)
|
|
FXLabel.new(vLinea61, "Codice gruppo", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 132)
|
|
FXTextField.new(vLinea61, 3, :target => @codiceGruppo, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea62 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceConto = FXDataTarget.new("")
|
|
FXLabel.new(vLinea62, "Codice conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 138)
|
|
FXTextField.new(vLinea62, 3, :target => @codiceConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea63 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceSottoconto = FXDataTarget.new("")
|
|
FXLabel.new(vLinea63, "Codice sottoconto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 112)
|
|
FXTextField.new(vLinea63, 6, :target => @codiceSottoconto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
FXTextField.new(vLinea63, 60, :target => @denominazioneConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_READONLY)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@siglaValuta, @valuta = FXDataTarget.new("")
|
|
FXButton.new(vLinea7, '?', :padLeft => 5, :padRight => 5)
|
|
FXLabel.new(vLinea7, "Sigla valuta", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 144)
|
|
FXTextField.new(vLinea7, 3, :target => @siglaValuta, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
FXTextField.new(vLinea7, 50, :target => @valuta, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_READONLY)
|
|
|
|
vLinea8 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@cambioNazionale = FXDataTarget.new("")
|
|
FXLabel.new(vLinea8, "Cambio: valuta nazionale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 80)
|
|
FXTextField.new(vLinea8, 10, :target => @cambioNazionale, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea9 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@cambioEstero = FXDataTarget.new("")
|
|
FXLabel.new(vLinea9, "Cambio: valuta estera", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 94)
|
|
FXTextField.new(vLinea9, 10, :target => @cambioEstero, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
vLinea10 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP)
|
|
FXLabel.new(vLinea10, "Importo del movimento in valuta", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 35)
|
|
|
|
vLinea11 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@valutaDare = FXDataTarget.new("")
|
|
FXLabel.new(vLinea11, "DARE", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 125, :padRight => 76)
|
|
FXTextField.new(vLinea11, 15, :target => @valutaDare, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea12 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@valutaAvere = FXDataTarget.new("")
|
|
FXLabel.new(vLinea12, "AVERE", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 125, :padRight => 70)
|
|
FXTextField.new(vLinea12, 15, :target => @valutaAvere, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea13 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXLabel.new(vLinea13, "Importo del movimento in valuta nazionale", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 35)
|
|
vLinea13 = FXHorizontalFrame.new(area, :opts => LAYOUT_SIDE_TOP)
|
|
|
|
vLinea14 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@valoreDare = FXDataTarget.new("")
|
|
FXLabel.new(vLinea14, "DARE", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 53, :padLeft => 125, :padRight => 76)
|
|
FXTextField.new(vLinea14, 15, :target => @valoreDare, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea15 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@valoreAvere = FXDataTarget.new("")
|
|
FXLabel.new(vLinea15, "AVERE", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 52, :padLeft => 125, :padRight => 70)
|
|
FXTextField.new(vLinea15, 15, :target => @valoreAvere, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
vLinea16 = FXHorizontalFrame.new(gruppo3, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@descrzione = FXDataTarget.new("")
|
|
FXLabel.new(vLinea16, "Descrizione aggiuntiva", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 92)
|
|
FXTextField.new(vLinea16, 50, :target => @descrizione, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW)
|
|
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25)
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25)
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25)
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
end
|
|
end
|
|
|
|
class Finestra802 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Conto di Mastro")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Estratto Conto Clienti/Fornitori")
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Scadenziario")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Prima Nota")
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Libro Giornale")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Libri Iva")
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Progressivi Iva")
|
|
FXMenuTitle.new(menubar, "Interrogazioni e Stampe", :popupMenu => archivitabellemenu)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
end
|
|
|
|
class Finestra803 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Bilancio di Verifica")
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Bilancio di Esercizio")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Bilancio di Verifica del Controllo di Gestione")
|
|
FXMenuCommand.new(archivitabellemenu, "Interrogazione/Stampa Bilancio di Esercizio del controllo di Gestione")
|
|
FXMenuTitle.new(menubar, "Bilanci di Esercizio", :popupMenu => archivitabellemenu)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
end
|
|
|
|
class Finestra804 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione del Portafoglio Effetti")
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione dei Finanziamenti")
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione delle Fideiussioni")
|
|
FXMenuSeparator.new(archivitabellemenu)
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione Comunicazioni Instrastat")
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione Ritenute Fiscali")
|
|
FXMenuCommand.new(archivitabellemenu, "Gestione Ratei e Risconti")
|
|
FXMenuTitle.new(menubar, "Servizi Finanziari ed Amministrativi", :popupMenu => archivitabellemenu)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
end
|
|
|
|
class Finestra805 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 600, :height => 400)
|
|
# Menubar
|
|
menubar = FXMenuBar.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
|
# File menu
|
|
filemenu = FXMenuPane.new(self)
|
|
archivitabellemenu = FXMenuPane.new(self)
|
|
FXMenuCommand.new(archivitabellemenu, "Inserimento Manuale dei Movimenti di Apertura/Chiusura")
|
|
FXMenuCommand.new(archivitabellemenu, "Scritture di Rettifica")
|
|
FXMenuCommand.new(archivitabellemenu, "Generazione Automatica della Chiusura/Apertura di Esercizio")
|
|
FXMenuCommand.new(archivitabellemenu, "Cancellazione Movimenti Esercizi Precedenti")
|
|
FXMenuTitle.new(menubar, "Operazioni di Chiusura/Apertura degli Esercizi", :popupMenu => archivitabellemenu)
|
|
FXHorizontalSeparator.new(self, LAYOUT_SIDE_TOP|SEPARATOR_GROOVE|LAYOUT_FILL_X)
|
|
end
|
|
end
|
|
|
|
class Finestra00001 < FXDialogBox
|
|
#finestra prototipo per l'acquisizione dei dati
|
|
def initialize(app)
|
|
# Initialize base class
|
|
@contatore = 0
|
|
@riga = nil
|
|
#carica in memoria tutto il piano dei conti
|
|
#carica_dati
|
|
#disegna la finestra
|
|
super(app, "PROGRAMMA PIRAMIDE", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 800, :height => 400)
|
|
|
|
#self.backColor = "FF.FF.FF"
|
|
area = FXPacker.new(self, :opts => LAYOUT_FILL, :vSpacing => 30, :hSpacing => 50)
|
|
|
|
gruppo1 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
|
|
vTesta0 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH, :padBottom => 10)
|
|
FXLabel.new(vTesta0, "FINESTRA PROTOTIPO", nil, JUSTIFY_CENTER_X|LAYOUT_FILL_ROW, :padRight => 128)
|
|
|
|
vTesta1 = FXHorizontalFrame.new(gruppo1, :opts => LAYOUT_SIDE_TOP|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vTesta1, 'Primo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) #{primo_record }
|
|
FXButton.new(vTesta1, 'Record precedente', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) #{precedente_record}
|
|
FXButton.new(vTesta1, 'Record successivo', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) #{successivo_record}
|
|
FXButton.new(vTesta1, 'Ultimo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) #{ultimo_record}
|
|
FXButton.new(vTesta1, 'Nuovo record', :padLeft => 5, :padRight => 5).connect(SEL_COMMAND) #{nuovo_record}
|
|
=begin
|
|
gruppo2 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vLinea1 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceTipoConto = FXDataTarget.new(0)
|
|
FXButton.new(vLinea1, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90001.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceTipoConto.value = $var[0]
|
|
@descrizioneTipoConto.value = $var[1]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea1, "Codice tipo conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 128)
|
|
FXTextField.new(vLinea1, 1, :target => @codiceTipoConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER)
|
|
@descrizioneTipoConto = FXDataTarget.new("")
|
|
FXTextField.new(vLinea1, 30, :target => @descrizioneTipoConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea2 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceGruppo = FXDataTarget.new(0)
|
|
FXButton.new(vLinea2, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90003.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceGruppo.value = $var[0]
|
|
@descrizioneGruppo.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea2, "Codice gruppo", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 130)
|
|
gruppo = FXTextField.new(vLinea2, 3, :target => @codiceGruppo, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
@descrizioneGruppo = FXDataTarget.new("")
|
|
FXTextField.new(vLinea2, 30, :target => @descrizioneGruppo, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea3 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceConto = FXDataTarget.new(0)
|
|
@descrizioneConto = FXDataTarget.new("")
|
|
FXButton.new(vLinea3, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var = @codiceGruppo
|
|
ricerca = Finestra90004.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceConto.value = $var[0]
|
|
@descrizioneConto.value = $var[1]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea3, "Codice conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 138)
|
|
FXTextField.new(vLinea3, 3, :target => @codiceConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
FXTextField.new(vLinea3, 30, :target => @descrizioneConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea4 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceSottoconto = FXDataTarget.new(0)
|
|
FXButton.new(vLinea4, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
$var[0] = @codiceGruppo
|
|
$var[1] = @codiceConto
|
|
ricerca = Finestra90005.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceSottoconto.value = $var[0]
|
|
@denominazioneConto.value = $var[1]
|
|
@codiceNaturaConto.value = $var[2]
|
|
@indice.value = $var[3]
|
|
$var = []
|
|
vai_a_record
|
|
}
|
|
FXLabel.new(vLinea4, "Codice sottoconto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 95)
|
|
FXTextField.new(vLinea4, 6, :target => @codiceSottoconto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER|JUSTIFY_RIGHT)
|
|
|
|
vLinea5 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXButton.new(vLinea5, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
if $var[0] != nil
|
|
$var[0] = @denominazioneConto.value.gsub(/\W/, '').upcase
|
|
ricerca = Finestra90006.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@indice.value = $var[0]
|
|
$var = []
|
|
if @indice.value != nil
|
|
if @indice.value > "0"
|
|
@contatore = 0
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
|
|
until @indice.value == @riga[7]
|
|
@riga = @scelta.data_seek(@contatore)
|
|
@riga = @scelta.fetch_row
|
|
@contatore = @contatore + 1
|
|
end
|
|
@contatore = @contatore - 1
|
|
assegna_variabili
|
|
end
|
|
end
|
|
end
|
|
}
|
|
FXLabel.new(vLinea5, "Denominazione conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 122)
|
|
@denominazioneConto = FXDataTarget.new("")
|
|
FXTextField.new(vLinea5, 30, :target => @denominazioneConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED)
|
|
|
|
vLinea6 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
FXLabel.new(vLinea6, "Costante del conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padLeft => 25, :padRight => 120)
|
|
@costanteConto = FXDataTarget.new("A")
|
|
FXTextField.new(vLinea6, 1, :target => @costanteConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
vLinea7 = FXHorizontalFrame.new(gruppo2, :opts => LAYOUT_SIDE_TOP, :vSpacing => 0)
|
|
@codiceNaturaConto = FXDataTarget.new(0)
|
|
@descrizioneNaturaConto = FXDataTarget.new("")
|
|
FXButton.new(vLinea7, '?', :padLeft => 5, :padRight => 5, :padTop =>0, :padBottom => 0).connect(SEL_COMMAND) {
|
|
$var = []
|
|
ricerca = Finestra90002.new(self)
|
|
ricerca.execute(PLACEMENT_CURSOR)
|
|
@codiceNaturaConto.value = $var[0]
|
|
@descrizioneNaturaConto.value = $var[1]
|
|
$var = []
|
|
}
|
|
FXLabel.new(vLinea7, "Codice natura conto", nil, JUSTIFY_RIGHT|LAYOUT_FILL_ROW, :padRight => 115)
|
|
FXTextField.new(vLinea7, 1, :target => @codiceNaturaConto, :selector => FXDataTarget::ID_VALUE, :opts => FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_ROW|TEXTFIELD_LIMITED|TEXTFIELD_INTEGER)
|
|
FXTextField.new(vLinea7, 30, :target => @descrizioneNaturaConto, :selector => FXDataTarget::ID_VALUE, :opts => TEXTFIELD_READONLY|TEXTFIELD_OVERSTRIKE)
|
|
|
|
@indice = FXDataTarget.new("")
|
|
=end
|
|
gruppo4 = FXGroupBox.new(area, "", :vSpacing => 0)
|
|
vFondo = FXHorizontalFrame.new(gruppo4, :opts => LAYOUT_SIDE_BOTTOM|PACK_UNIFORM_WIDTH)
|
|
FXButton.new(vFondo, 'Cancella', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) #{cancella_record}
|
|
FXButton.new(vFondo, 'Annulla', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) #{azzera_variabili}
|
|
FXButton.new(vFondo, 'Registra', :padLeft => 25, :padRight => 25).connect(SEL_COMMAND) #{registra}
|
|
FXButton.new(vFondo, 'Esci', :target => self, :selector => FXDialogBox::ID_CANCEL, :padLeft => 25, :padRight => 25)
|
|
#azzera_variabili
|
|
end
|
|
end
|
|
|
|
class Finestra90001 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Codice del tipo di conto", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(3, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
lista.setItemText(0, 0, "1")
|
|
lista.setItemText(0, 1, "GRUPPO")
|
|
lista.setItemJustify(0, 1, FXTableItem::LEFT)
|
|
lista.setItemText(1, 0, "2")
|
|
lista.setItemText(1, 1, "CONTO")
|
|
lista.setItemJustify(1, 1, FXTableItem::LEFT)
|
|
lista.setItemText(2, 0, "3")
|
|
lista.setItemText(2, 1, "SOTTOCONTO")
|
|
lista.setItemJustify(2, 1, FXTableItem::LEFT)
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90002 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Codice della natura del conto", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
lista.setTableSize(4, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
lista.setItemText(0, 0, "1")
|
|
lista.setItemText(0, 1, "CONTO DI REDDITO")
|
|
lista.setItemJustify(0, 1, FXTableItem::LEFT)
|
|
lista.setItemText(1, 0, "2")
|
|
lista.setItemText(1, 1, "CONTO PATRIMONIALE")
|
|
lista.setItemJustify(1, 1, FXTableItem::LEFT)
|
|
lista.setItemText(2, 0, "3")
|
|
lista.setItemText(2, 1, "CONTO D\'ORDINE")
|
|
lista.setItemJustify(2, 1, FXTableItem::LEFT)
|
|
lista.setItemText(3, 0, "4")
|
|
lista.setItemText(3, 1, "CONTO RIEPILOGATIVO")
|
|
lista.setItemJustify(3, 1, FXTableItem::LEFT)
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90003 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del codice del gruppo", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM piano_dei_conti WHERE codice_tipo_conto = 1")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[1])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[5])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90004 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del codice del conto", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM piano_dei_conti WHERE codice_tipo_conto = 2 AND codice_gruppo = '#{$var}'")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,3)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 25)
|
|
lista.setColumnWidth(2, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[1])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[2])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 2, @riga[5])
|
|
lista.setItemJustify(idx, 2, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
$var = []
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 1)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 2)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90005 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del codice di sottoconto", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM piano_dei_conti WHERE codice_tipo_conto = 3 AND codice_gruppo = '#{$var[0]}' AND codice_conto = '#{$var[1]}'")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,6)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 25)
|
|
lista.setColumnWidth(2, 50)
|
|
lista.setColumnWidth(3, 200)
|
|
lista.setColumnWidth(4, 25)
|
|
lista.setColumnWidth(5, 100)
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[1])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[2])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 2, @riga[3])
|
|
lista.setItemJustify(idx, 2, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 3, @riga[5])
|
|
lista.setItemJustify(idx, 3, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
$var = []
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 2)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 3)).to_s
|
|
$var[2] = (sender.getItem(pos.row, 4)).to_s
|
|
$var[3] = (sender.getItem(pos.row, 5)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90006 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca di conto per denominazione", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 500, :height => 200)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM piano_dei_conti WHERE sigla LIKE '%#{$var[0]}%'")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0,100)
|
|
lista.setColumnWidth(1,300)
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[7])
|
|
lista.setItemJustify(idx, 0, FXTableItem::RIGHT)
|
|
lista.setItemText(idx, 1, @riga[5])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
$var = []
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90011 < FXDialogBox #finestra per la ricerca delle causali di contabilita' generale per codice
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del codice della causale iva", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_coge")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90012 < FXDialogBox #finestra per la ricerca delle causali di contabilita' generale per descrizione
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Causale di contabilita\' generale", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 11)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_coge WHERE sigla LIKE '%#{$var[0]}%'")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90013 < FXDialogBox #finestra per la ricerca dei libri giornale
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del libro contabile", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 100)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM libro_contabile WHERE tipo_registro_iva = 1")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90014 < FXDialogBox
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Codice del tipo di libro contabile", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 200)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(3, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
|
|
lista.setItemText(0, 0, "1")
|
|
lista.setItemText(0, 1, "LIBRO GIORNALE")
|
|
lista.setItemJustify(0, 1, FXTableItem::LEFT)
|
|
lista.setItemText(1, 0, "2")
|
|
lista.setItemText(1, 1, "LIBRO IVA ACQUISTI")
|
|
lista.setItemJustify(1, 1, FXTableItem::LEFT)
|
|
lista.setItemText(2, 0, "3")
|
|
lista.setItemText(2, 1, "LIBRO IVA VENDITE")
|
|
lista.setItemJustify(2, 1, FXTableItem::LEFT)
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90015 < FXDialogBox #finestra per la ricerca dei libri contabili
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del libro contabile", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 200)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
|
|
begin
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM libro_contabile")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
rescue MysqlError => e
|
|
@conn.close
|
|
print "error code: ", e.errno, "\n"
|
|
print "error message: ", e.error, "\n"
|
|
end
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90016 < FXDialogBox #finestra per la ricerca dei libri iva
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del libro iva", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 500)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM libro_contabile WHERE tipo_registro_iva > 1")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90017 < FXDialogBox #finestra per la ricerca dei documenti iva
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca del tipo di documento iva", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 500)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM tipo_documento_iva")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90018 < FXDialogBox #finestra per la ricerca delle operazioni iva
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca delle operazioni iva", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 500)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM operazione_iva")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90019 < FXDialogBox #finestra per la ricerca di causali iva
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Ricerca delle operazioni iva", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 500)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_iva")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
lista.tableStyle |= TABLE_COL_SIZABLE
|
|
lista.setTableSize(0,2)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 200)
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
$var[1] = (sender.getItem(pos.row, 1)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
class Finestra90020 < FXDialogBox #finestra per la ricerca delle causali iva per descrizione
|
|
#def initialize(app)
|
|
def initialize(app)
|
|
# Initialize base class
|
|
super(app, "Causale di contabilita\' generale", :opts => DECOR_ALL, :x => 20, :y => 20, :width => 400, :height => 500)
|
|
lista = FXTable.new(self, :opts => LAYOUT_FILL|TABLE_READONLY)
|
|
lista.setTableSize(0, 11)
|
|
lista.rowHeaderMode = LAYOUT_FIX_WIDTH
|
|
lista.rowHeaderWidth = 0
|
|
lista.columnHeaderMode = LAYOUT_FIX_HEIGHT
|
|
lista.columnHeaderHeight = 0
|
|
lista.setColumnWidth(0, 25)
|
|
lista.setColumnWidth(1, 400)
|
|
@conn = Mysql.new("localhost", "root", "xcolibri", "piramide")
|
|
@scelta = @conn.query("SELECT * FROM causali_iva WHERE codice LIKE '%#{$var[0]}%'")
|
|
@contatore = "#{@scelta.num_rows}".to_i
|
|
@conn.close
|
|
|
|
idx = 0
|
|
while idx < @contatore
|
|
@riga = @scelta.data_seek(idx)
|
|
@riga = @scelta.fetch_row
|
|
lista.insertRows(idx)
|
|
lista.setItemText(idx, 0, @riga[0])
|
|
lista.setItemJustify(idx, 0, FXTableItem::LEFT)
|
|
lista.setItemText(idx, 1, @riga[1])
|
|
lista.setItemJustify(idx, 1, FXTableItem::LEFT)
|
|
idx = idx + 1
|
|
end
|
|
|
|
lista.connect(SEL_SELECTED) do | sender, sel, pos |
|
|
$var[0] = (sender.getItem(pos.row, 0)).to_s
|
|
end
|
|
end
|
|
end
|
|
|
|
if __FILE__ == $0
|
|
# Make an application
|
|
application = FXApp.new("DataTarget", "FoxTest")
|
|
# Create main window
|
|
window = Finestra0.new(application)
|
|
# Handle interrupts to quit application gracefully
|
|
application.addSignal("SIGINT", window.method(:onCmdQuit))
|
|
# Create the application
|
|
application.create
|
|
# Run
|
|
application.run
|
|
end
|