first commit (2002-04-24)

This commit is contained in:
2021-09-01 18:53:06 +02:00
commit 4d943d773d
252 changed files with 17433 additions and 0 deletions

27
cap_gestion/Portada.cpp Normal file
View File

@ -0,0 +1,27 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Portada.h"
#include "capg_menu.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TAcercaDe *AcercaDe;
//---------------------------------------------------------------------------
__fastcall TAcercaDe::TAcercaDe(TComponent* Owner)
: TForm(Owner)
{
Image4->Picture->LoadFromFile( "portada.jpg" );
}
//---------------------------------------------------------------------------
void __fastcall TAcercaDe::Timer1Timer(TObject *Sender)
{
Timer1->Enabled = false;
this->Visible = false;
MainForm->ShowModal();
Close();
}
//---------------------------------------------------------------------------

766
cap_gestion/Portada.dfm Normal file
View File

@ -0,0 +1,766 @@
object AcercaDe: TAcercaDe
Left = 316
Top = 135
BorderIcons = []
BorderStyle = bsDialog
ClientHeight = 373
ClientWidth = 359
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
FormStyle = fsStayOnTop
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object Image4: TImage
Left = 0
Top = 0
Width = 359
Height = 373
Align = alClient
AutoSize = True
end
object Image1: TImage
Left = 160
Top = 256
Width = 153
Height = 57
Picture.Data = {
07544269746D6170B6290000424DB62900000000000036040000280000009F00
00003C0000000100080000000000802500000000000000000000000100000000
00003924240052242400392D2D00632D2D00742D2D0039363600523636006336
36007436360041403600524036006B4036004A493600413640008D3640004140
40005B404000634040007440400085404000414940009E4940004A5240006352
40004A404900634049004A494900524949006349490074494900854949009649
49004A5249006B5249008D5249004A495200524952004A5252005B5252006352
52007C5252005B5C52008D5C52005B5C5C00635C5C007C5C5C008D5C5C00A65C
5C00B75C5C005B655C0063655C0074655C007C6E5C005B5C6500745C65008D5C
65005B656500636565006B6565007C6565008D656500AF656500C0656500FB5C
6E00F2656E00636E6E006B6E6E00746E6E007C6E6E008D6E6E00B76E6E00C86E
6E00FB657800F26E78005B787800747878007C7878008D7878009E787800C078
7800C8787800D97878007C81780085817800E1817800858A7800AF8A7800FB65
81005B788100857881008D788100A6788100F2788100858181009E818100A681
8100C0818100E1818100FB818100858A8100968A8100D98A8100FB658A00FB78
8A007C818A008D818A00A6818A00E1818A00FB818A008D8A8A00968A8A00AF8A
8A00B78A8A00C88A8A00E18A8A00FB8A8A00AF948A00C0948A00FB948A00FB6E
940096819400FB819400968A9400C08A9400C88A9400FB8A94008D9494009694
9400B7949400C0949400C8949400FB9494009E9D9400FB9D9400A66E9D00C894
9D00969D9D009E9D9D00A69D9D00D09D9D00FB9D9D00B7B09D00FB78A600FB81
A600FB8AA600FB94A600AF9DA600C89DA600D09DA600FB9DA600AFA6A600FBA6
A600B7B0A600C8B0A600D0B0A600D9B0A600E1B0A600FBB0A600F26EB000FB78
B000FB8AB000FB94B000C0A6B000E1A6B000F2A6B000AFB0B000B7B0B000C0B0
B000C8B0B000D0B0B000D9B0B000F2B0B000FBB0B000EAB9B000F278B900E1A6
B900F2A6B900B7B0B900C0B0B900C8B0B900D0B0B900D9B0B900E1B0B900F2B9
B900FBB9B900F2C2B900FBC2B900D0B9C200D9B9C200EAB9C200E1C2C200F2C2
C200FBC2C200C8CCC200FBCCC200F2A6CC00D9C2CC00FBC2CC00D0CCCC00EACC
CC00F2CCCC00FBCCCC00D0D5CC00D9D5CC00F281D500F28AD500F294D500D9A6
D500F2D5D500FBD5D500E1DED500EADED500FBDED500F278DE00FB81DE00E18A
DE00EA8ADE00EA94DE00EA9DDE00F2A6DE00FBC2DE00FBD5DE00E1DEDE00F2DE
DE00FBDEDE00EAE8DE00EA94E800F29DE800EAB9E800F2C2E800E1CCE800FBE8
E800EAF1E800F2F1E800E18AF100D09DF100F2F1F100FBF1F100D994FA00D09D
FA00C8A6FA00D0B0FA00C0B9FA00C8B9FA00C8C2FA00D0C2FA00C8CCFA00D0CC
FA00D9D5FA00E1D5FA00D9DEFA00E1DEFA00EAE8FA00FBE8FA00F2F1FA00FBFA
FA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFEFEFEFEFCFCFCFCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFEFCFAF7F6F6F4F7F7F7F7F7F7F7F8FBFCFEFEFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFBFAFAF8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8FAFAF8F8F8F8
F8F8F8F8F8F8F8F8F8FAFAF8F8FAFAFBFCFEFEFFEDE7E0E0E0E0E7EDEDFFFFFF
FFFFEDE7E0E0E0E0EDFFFFFFFFFFEDEDEDEDFFFFFFFFEDE7E0E7EDFFFFFFFFFF
FF00FFFFFFFFFFFFFCF7F4F1F0F0EBF1F1F1F1F1F1F1F3F4F8FBFEFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF9F8F5F3F3F3F3F3F3
F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3
F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F4F8FBFCE0C9C0B8ACACB8C0C9E0E7EDFF
FFFFE0C0B8ACACB8C9E0EDFFFFEDE0C9C9D1E7EDFFEDD4C0B8C0C9E0EDFFFFFF
FF00FFFFFFFFFFFFFAF4EBEAD7CCCDCECECECECDD8D8EAEFF2F7FCFFFFFFFFED
EDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE5DBDBDADADADADADADADA
DADADADADAD9DADADADADADADAE3D9DADADADADADADADADAD9DADADADADADADA
DADADADAD9DAD9DADADAD9D9E2E2EEEBF2F5E6C5978373736273838C97C0D1E7
E7E7C08C7D736C768CACC5E0EDE7D1978C97B8D1E7E7C09773838CACC9E7FFFF
FF00FFFFFFFFFFFFF8F1EAD59E7979919191908F8E9FD5EAF0F5FBFFEDE7D1D1
D1D1D1D1E0E7EDEDFFFFFFFFFFFFFFFFFFFFFFE7DCC3A0A0A0A1A1A1A1A1A1A1
A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1
A1A1A1A1A1A1A1A1A1A1A090AEAECCEAEFF178000100020001306273768CACC0
C92D00000100046C738397BAD11C1283737385B88200000047627385B8E0FFFF
FF00FFFFFFFFFFFFF9EBD677485C7295959583836C4877CCE2F5FAE7C9B8978C
8C8C8C9797ACC0D1E0E7EDFFFFFFFFFFFFFFEDC9B07D797D8395959595959595
9595959595959595959595959595959595959595959595959595959595959595
959595959595959595958C83735777CCEACF19C0ABA4A4B8AB9302007262738C
2E10ACB0A4B893020E73768C8CA3870601506297127BACB83C000E83ACD1FFFF
FF00FFFFFFFFFFFFDFE4CC663F498BA4A4A4A4A36B4057AEE2E6FBDF8D848484
6A80817273738397ACC0D1E7EDFFFFFFFFFFE7B88C5C6BA39597A4A4A4A4A4A4
A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4
A4A4A4A4A4A4A4A4A4A4A4A472493F77D837AAA4A4A4ABB8B6A3B8A33B017662
0094A4A4A4A4ACAB2E0083737D27A4ABB8063E830E93A4ABACAB0A72B8E0FFFF
FF00FFFFFFFFFFFFE7E4CE77485C7297A49595836B4066AEE3E6C605052B2B2B
2B250F142C5F7273838C97C0D1E7EDFFFFFFE7C08C62728C9597A4A4A4A4A4A4
A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4
A4A4A4A4A4A4A4A4A4A4979572493F77CD8611B6A4A4AB3B00000093B83B0061
03ABA4A4B8A30206BD9400617300B8A4A49304734645ACABAB060385B8E0FFFF
FF00FFFFFFFFFFFFFFE7C5A17967738C8C8383736C678FC3E5DF0F43A2B6A4A4
ABAABC96522605204E6B738397B8D1FFFFFFEDC9AC7D73838395959595959595
9595959595959595959595959595959595959595959595959595959595959595
95959595959195959595837D6C6767A0DBDFC400279B9B03C9C9C9006AA4A31C
00A3ABA49400838B1CB0C5101301A9A4A4B600739700B7A4AB11617397D1EDFF
FF00FFFFFFFFFFFFFFFFDDC5B0959595959583837D91BDDCFD6D0FB3A4A4A4A4
A4A4ABABB6B37E2B05053C73738CACC9E7FFFFE7C5AC83838383958C95959595
8C958C95958C9595958C8C958C958C95958C958C8C8C8C8C8C958C8C958C9583
8C958C958C8C8C8C9595837D7D7D91C3E5FFFFFF3B0006BFC0AC97711CA495B8
006FA4A49304738C02B8ACB600462DABA4C5026C8300AAA4A46F03738CC0E7ED
FF00FFFFFFFFFFFFFFFFFFEDE7E0E0C9DDD1DDC9C9E0E7FFFF424BABA4A4A4B0
B6B5895D5D8ABBBBB25D18185F737D97C0E0FFFFEDE0C9C0C5C5C5C5C0C5C5C5
C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C0
C5C5C5C5C5C0C5C5C5C5C5C5C0C9DDE7FFFFFFFFFFFFE0958C130007AAA4A4AB
7B00C5A4940073730087A4AB875000B0A4AC805173472DABA4A3006C738CC0DD
ED00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A5DB0A4A4A4A4
962500072806094CB2BCB3430F144F7397C0E7FFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE0101288BBDACA4A4A4A4
94000093AB281E8306B8A4A4A3130494A4A4AC01677300A4A4B0281F627385AC
C900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF435DA4A4A4A4B6
3A0082E0EDFF4D052B96B6B47A1C054F73ACC9EDFFFFFFFFFFFFFFFFFFFFFFED
EDEDEDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD20094B7ABA4A4A4A4A4A4A4
A901D10006B61C0087ABA4A49400001CACA4AB000102024EA4A4940000727683
AC00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF435DA4A4A4A4B3
0046ACD1EDFFFFD20A2096ABA49635006183B8E0EDFFFFFFFFFFFFFFEDE7DDC9
C9C0C0C0C5C9E0E7EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDEDEDEDE7E7
E7E7EDEDEDEDFFFFFFFFFFFFFFFFFFFFFFFFFFFF277BACA4ACACACA4AC7B4500
01D4E0ED92926FABA4A4A4A48BC0B8ACACA4A4B8C05BC5A4ACA4A4ACAB001F7D
B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF435DA4A4A4A496
017397C2E7FFFFFFD2092CB5B0A3A725127397C9E7FFFFFFFFFFFFEDE0C0B897
8C8C8C8C9797ACC9E0EDFFFFFFFFFFFFFFFFFFFFFFFFFFEDE7E0DDD1C9C9C5C0
C0C0C5C9C9D1E0E7EDFFFFFFFFFFFFFFFFFFFFFF3A87A4A4A4ACA33C02002EC9
B8ACC0D1A9001CA3A4A4A4B7101CB6A4ACA4A4A4ACB64587A4A4A4A4ABBD0A72
C200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF435DA4A4A4ABA8
005183A4D1EDFFFFFFCA187EB6A4B089004783ACE0EDFFFFFFFFE7D0C27F4444
4343435E7B727697B8E0EDFFFFFFFFFFFFFFFFEDE7E0C9C0B8AC979785858383
8385858C8C97ACC0C9E0E7EDFFFFFFFFFFFFFFFFFE00ABACACBD00618397AC97
83768397C0E08000021C19012706100010ABACB81C002D0236ABA4B81C002E8B
E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C39A3A4A4A4B5
0908738CC0E7FFFFFFFF7E26B3ABACB51A03738CC9E7FFFFFFFFE743050F2B4B
5D52391A0F2650859DC9EDFFFFFFFFFFFFEDE7D1C0B89D8CA4A371706D6D6D6E
5E5F758C7D73738597B8C9E0EDFFFFFFFFFFFFFFFF0F36ABA4B70083738C0100
016C738397D1FFECFFFFFFFFFFEDFFFF028BA4A42713738300B6B8A437039DC9
E700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC10996A3A4A4A4
6D051C83C0E7FFFFFFFFEC185DB5A4A47E003083B8DDFFFFFFFF1B0F6DB4B6B6
B6BCBEC4964B050271D1EDFFFFFFEDE7E0C0B89D9C4E260F0F252B4B5D5D5D5D
5D522B1A0F1B3B7173768CACC0E0EDFFFFFFFFFFFFFF420DB7A45E00010082B8
AF3C017697C9EDFFFFFFFFFFFFFFFFFFED00BFA4AA007D7360010027B600C9E7
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF430963BBAAAB
B4841B82E0EDFFFFFFFFFF6D14B2A4A4BB3901738CC0E7EDFF2B0F8AA3B5B252
25051A397EA7924328E7EDFFEDE7D1C0AC811B0F0F2B5DA2B5AAA4A4A4A4A4A4
A4A4A3B5B37F3A18095B6C7385B8D1E7FFFFFFFFFFFFFFDE00007BC095A4A4AB
A4AC1BACC8E0FFFFFFFFFFFFFFFFFFFFFFEC009BAC2D0100B500033D1E71D1ED
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC2105204C5D
96842794EDFFFFFFFFFFFFE8187EA3A4A37A00477397C0D1A70552B6B57F2600
1DB6801C02146D4C2DFFEDE7D1C9B89214052552A2B4A3B0A4A4A4A4A4A4A4A4
A4A4A4A4A4A4B38A26052765738CB8D1E7FFFFFFFFFFFFFFFF96000693BDB8B7
B8AB10E0E7EDFFFFFFFFFFFFFFFFFFFFFFFFFF00A9B8448BACB8210073ACE0FF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B2A72E
37372DBEFFFFFFFFFFFFFFFF432BBCB0A4B5250B5C7383A4202BB5BB4C001DD0
FFFFFFFFEC812E2E5FE7D1B7BE3B0F0F4BA7AAA4A4A4A4A4A4A4ACA4A4A4A3B5
BB929692A2B4AAB0B58A2505287385A4C9E7FFFFFFFFFFFFFFFFFFFFDF260700
0010EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A0287ABABACA301BFE0EDFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFC10FA7A4A4AA5A092971729C186DB57F051CC9ED
FFFFFFFFFFFFEDE7D1C0B774180F4196B6A4A4A4A4A4A4A4A4A4A4B5A67F4229
050507060A204396B4B5A743054E7383ACD1EDFFFFFFFFFFFFFFFFFFFFFFFEFF
FFECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1002D81702700E7EDFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFF204CA3A4A4B5894223090214B3BC1A07C0E7FF
FFFFFFFFEDE7C2ADBF2C090F52A7ABA4A4A4A4A4A4B0ABAAB4894B1B00114EB6
E7FFFFFFEDBE34023A96B5B66D051D7285B8E0EDFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDEDFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFE7D44C25B4A4A4A4A4B5A8430026B6A50071C9EDFF
FFFFEDE7D1C0B9340F0F43A2A3A4A4A4A4A4A4A4A4B6B36E29020145C8EDFFFF
FFFFFFFFFFFFFF96051A96B6B54B002A7397C9EDFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFEDE0C0BE180596A4A4A4A4AA962B004CBC5D038CC0E0E7
E7E0C9ADB93A051A52B3A3A4A4A4A4A4A4A4B0B5964B0F012EB7C9C9D1D1D1D1
E0E7EDFFFFFFFFFFE932026EB4B54B002F73BAE0FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFEDE0C0BF2005256EB4A4A4A4B33100111A5DBC4D1F7395B8C0
B89C8D1A0F2589B4A4A4A4A4A4A4A4A4A4B47F26000146978C8C8C8C8C8C9797
9DB8C9E0EDFFFFFFFFFF530A89A4B43900729DD1EDFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFE7D1B95D14185DA7B4B6A4A4A4B31A138C4D52BC5D0373738C8C
9B1A051A68A7A4A4A4A4A4A4A4A4A4AA963809023D72978B7075707581A48373
738397B8C9E7EDFFFFFFFF2039A3A48A022F97C9EDFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFEDE0D16D0F0D4BBBB6B58A5DB4A4A4B63901835359B696020B6A290F
05428AB5ABA4A4A4A4A4A4A4A4B5893902000F1A141414253A5D5D4B25140F1B
397C738397C0E0EDFFFFFFC60FBBA4B539038CC2E7FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFE7D020052B89BCBB96430905A6B0A4AB7E0083452CB6AA4C090F254B
96B5A3A4A4A4A4A4A4A4A4A396440500000214426EA2BBB5AAAAA3A3B6B4964B
1B05456C7395C0E7FFFFFFFF26A6A4AA6D018CC0E7FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFEDE7960F2388B5B6962C0007992C52AFA4A4A706547518A7A4AAB4B4AAA4
A4A4A4A4A4A4A4A4A4B6A64B0500001A4BA7B5A3A4A4A4A4A4ABA4A3A4A4A4A4
B37F18054F7397C9E7FFFFFF2B96ABA496038CC0E7FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFF2C0D39B3B6BC6D0607C8FFFFCB14B4ABA4B42C158B185DB5ACA4B0B0A4
A4ABA4A4A4A4ABA998390502053989B4A4A4B0A4B0B0AAB3925D4B2B2B4B89B3
B6B6A736003D7DACE0EDFFFF1B96ACA492038CC2EDFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF42054BBBB6B66D0503E0FFFFFFED0989A4ABA36903832C20A2A4ABA4A4A4
A4A4A4A4A4A3A7430F00021A8AB4AAA4A4A4B0B6B48A431000062D3C331B051A
6DBCB6A726005C97D1EDFFE10FB3A4A4920397C9EDFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFB2054BB4B0AB8A0507B8E7FFFFFFFF294BAAABABA700619C0A31A8A4A4A4A4
A4A4A4B496420200001A5DBBABA4A4A4A4B5A24318001CC7FFFFFFFFFFFFED64
0232BCB69605128CC2E7ED4C14B5A4AB9603ACD1FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF5225B3A4A4B6390172ACE0FFFFFFFF6416B4A4A4B3023E8C5F024BB4B6A3A3
AAB37F39060F00002C92AAA4A4A4A4A3BB4C09003CE0FFFFFFFFFFFFFFFFFFFF
A8065DB6B543018CC0E0FF0F42ABABA36303B8E0FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF5352AAA4A4B62C03738CC0E0EDFFFFE90992B6A4AA260883B8BE0206262727
260201289A2B0F52A8A4A4A4A4A4BB6D1B0080EDFFFFFFFFFFFFFFFFFFFFFFFF
FFC60FA2A4960083B8D12B1896A4A4B42012D1EDFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF535DA4A4A4A36D003E7397C9E7EDFFFF1753AAA4A44C0173A4D1DFA8A9A9A9
A9C7EDED430D6DB5B0A4A4A4A4A74B0207DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF1A6DA3A70776978D054BAAA4AB8A0271E0FFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF5D5DA4A4A4A4B33100477397C0E0EDFF5520B4A4A48A00518CC0EDFFFFFFFF
FFFFFF430552B6A4ABA4A4A37F1B0081EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF5239AABB077381092BA7A4A4A72B01C9EDFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF5D39B6A4A4A4A4A7260054738CACC9E7D30996A4A4B3181F83B8E7FFFFFFFF
FFFF6E0552B4B0A4A4A4AA6D0211D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF4B39AAA710560F35A8A4A4B23A00AAEDFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF8A14B4A4A4A4A4AA922001477383A4C9D40C6DA4A4B53A0373ACE0FFFFFFFF
FFFF0F38B3A4A4A4A4A4920F28E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF1A52B68800021A96AAABB052004EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF0D52B5A4A4A4ABAAA22C00225C7395B8332BB5A4A37A006197D1EDFFFFFF
FF4C0FA2A3A4A4A4A4961A01E0EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFED0596BC420239B1B6ACB67E022EE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF431A8AAAA4A4A4A4A4A53A02075173855609B3A4B0B306308CC9EDFFFFFF
FF1A42B5A4A4A4A4B539009BEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ED4326BBA7392BA2A3ABAA891B1DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFED26096DB5A4A4ABA4B0B58929001F61650689ABB0B52C0783BAE7FFFFFF
FF1496A4A4A4A4A37F004FD1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE7
A60D8ABC896DBBABB0B34B0606E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFE9260553B4AFA4A4A4B0A4A84B05012A004CAAB0A35D0173B8E0EDFFFF
FF0FBBA4A4A4A4B6390197D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E7
1825BBB3B2B4A4A4B3430028E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFC102146DB4A4A4A4A4A4AA9642020026B3A4A496024797C9EDFFFF
FF25B5A4A4A4A4BC182F97C9EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDE0D1C814
1A8AA4BDA4B0A389250080EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFED64021A7EB6A4A4A4A4A4AAA75D4296A4ABB5200E8CC0E9FFFF
FF2BB6A4A4A4A4BC055083B7E7FFFFFFFFFFFFFFFFFFFFFFEDEDE0C9B88D0F24
89ABA4A4ABB44B001DE7EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFCB17054BB3B6ABA4A4A4B0B5A7A6A4A4B6430183B8E0FFFF
FF25B4A4ABA4A4B50F1F7397C9E7EDFFFFFFFFFFFFFFEDE7E0C9BAAD2C0F2589
AAA4A4B59639005FEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFCB090C5DB3A3A4A4A4B0ABA4A4A4A4890073ACD1FFFF
E10FA7A4A4A4A4B54300617397C0D1E7EDEDEDE7E0D4D1B89C9326052B7EB4A4
A4B696310210C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFE133023192AAABA4A4A4A4A4A4A4A6056197C9EDFF
FF147FAAA4A4A4A392052161738CACC0C9C9C9C0B9AC97931A051A68B3A4ABA3
B47E180080EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFDE330543A6A9A4ACB0A4A4A4A926308CC0E7FF
FF4325B2ABA4A4A4B66E0F1A616C7383838C8C8C933B0F0F3989B4A4A4ABB35D
1B006FEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF0A0543B2AAABA4A4A4B65D0883B8E0FF
FFE10932B2ABA4A4A4AAA2390914434D442B140F14397AB3B6B0A4A4A3A72B00
5EE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED64021A6DB3A4B0A4B08A0183ACE0FF
FFFF8D052CA7A3A4A4A4AAB48A4C2B2B2B4B528ABBB5B5B6BCAAA4A3922B0081
EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC64021489B5A4ABA80065B8E0FF
FFFFFFCB0C0552A7B5B0A4A4A4A4A4A4B6B6B5B3B28A59251A6DB36D0207C7EC
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3290943A7B6B50A60C9E7FF
FFFFFFFFEC5302183A7F96A7BBBBBBA2966D42260600064E170206023CEDFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC10C094BA7278BEDFFFF
FFFFFFFFFFFFFFD34D3B101111111107122E6FBEDFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE94D021906A9FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
4A00}
Stretch = True
Transparent = True
end
object Image2: TImage
Left = 112
Top = 312
Width = 32
Height = 32
AutoSize = True
Picture.Data = {
055449636F6E0000010004001010100000000000280100004600000010100000
00000000680500006E0100002020100000000000E8020000D606000020200000
00000000A8080000BE0900002800000010000000200000000100040000000000
C000000000000000000000001000000000000000000000000000800000800000
00808000800000008000800080800000C0C0C000808080000000FF0000FF0000
00FFFF00FF000000FF00FF00FFFF0000FFFFFF00000000000000000000000000
011111000000000009BB11000000000019B1B110001110001919B110091BB110
99BBB110011B9B1009911100091B9B1000119000099BB1100000000009911990
00000A00009009000AA00A000000000000000000000000000000000000000A00
A0000000000AA000000000000000000000000000FFC7FFFFFF83FFFFFF01FFFF
FF01FFFFC301FFFF8101FFFF0001FFFF0083FFFF00FFFFFF81C3FFFF8189FFFF
FF9FFFFFFA7FFFFFF06FFFFFE3C7FFFFFFF3FFFF280000001000000020000000
0100080000000000400100000000000000000000000100000000000000A8FF00
00FF00000000FF000000B00000004F0000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000FFFFFF00FEFEFEFE
FEFEFEFEFEFE050505FEFEFEFEFEFEFEFEFEFEFEFE0404040404FEFEFEFEFEFE
FEFEFEFE05020000000405FEFEFEFEFEFEFEFEFE04020004000404FEFEFE0303
0305FEFE04020402000404FEFE020300000303FE02020000000404FE05030300
0200030505020202040405FE0502030002000305FE0504040205FEFE05020200
00030305FEFEFEFEFEFEFEFEFE020202030202FEFEFE05050501FEFEFE050205
050205FEFE010105FE0105FEFEFEFEFEFEFEFEFEFE0505FEFEFEFEFEFEFEFEFE
FE05FE0505FEFEFEFEFEFEFEFEFEFEFE0501050501FEFE05FEFEFEFEFEFEFE01
0105FEFEFEFE050505FEFEFEFEFEFEFEFEFEFEFEFEFEFEFE0505FEFEFFC7FFFF
FF83FFFFFF01FFFFFF01FFFFC301FFFF8101FFFF0001FFFF0083FFFF00FFFFFF
81C3FFFF8189FFFFFF9FFFFFFA7FFFFFF06FFFFFE3C7FFFFFFF3FFFF28000000
2000000040000000010004000000000080020000000000000000000010000000
0000000000000000000080000080000000808000800000008000800080800000
C0C0C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000
FFFFFF0000000000000000000000000000000000000000000000000000000111
11000000000000000000000000011111111100000000000000000000001191BB
11111000000000000000000000991B11B111100000000000000000000919B911
1B11110000000000000000000199B1911B111100000000000000000009919B91
9B1111000000011111100000019991991B111100000011BBBB11100009919191
9B111100000991B11BB11100099999199B911100000119B111B1110000999BBB
BB911000009191B9191B11100099B9999B911000009999B9119B111000099911
99190000001991B9191B11100000010119000000009999B991BB919000000000
00000000009999B19BB11110000000000000000000999BBBB911911000000000
00000000000999B9919999000000000000AA000000099999099111000000AAA0
00AAA0000000999090199000000AAAA0000AA000000000000000000000AAAA00
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000A0000000000000000000000000000000AA000000
000000000000000000AA00000A0000000000000000000000AAAA000000000000
000000000000000AAAA000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000FFFFF83FFFFFE00FFFFFC007FFFF8003FFFF8003FFFF0001FFFF0001
FC1F0001F0070001E0030001C0010001C0018003800080038000C0078000E00F
8000F83F8000FF7F8000FE0FC001F007C001E003E003C0C3F14781E3FF7FC1FF
FF9F7DFFFFC63DFFFFC21DFFFF001EFFFE07063FFC0FF01FFE1FFE0FFFFFFF0F
FFFFFF8F28000000200000004000000001000800000000008004000000000000
0000000000010000000000000000000000008000008000000080800080000000
8000800080800000C0C0C000C0DCC000F0CAA600D4F0FF00B1E2FF008ED4FF00
6BC6FF0048B8FF0025AAFF0000AAFF000092DC00007AB90000629600004A7300
00325000D4E3FF00B1C7FF008EABFF006B8FFF004873FF002557FF000055FF00
0049DC00003DB900003196000025730000195000D4D4FF00B1B1FF008E8EFF00
6B6BFF004848FF002525FF000000FF000000DC000000B9000000960000007300
00005000E3D4FF00C7B1FF00AB8EFF008F6BFF007348FF005725FF005500FF00
4900DC003D00B900310096002500730019005000F0D4FF00E2B1FF00D48EFF00
C66BFF00B848FF00AA25FF00AA00FF009200DC007A00B900620096004A007300
32005000FFD4FF00FFB1FF00FF8EFF00FF6BFF00FF48FF00FF25FF00FF00FF00
DC00DC00B900B900960096007300730050005000FFD4F000FFB1E200FF8ED400
FF6BC600FF48B800FF25AA00FF00AA00DC009200B9007A009600620073004A00
50003200FFD4E300FFB1C700FF8EAB00FF6B8F00FF487300FF255700FF005500
DC004900B9003D00960031007300250050001900FFD4D400FFB1B100FF8E8E00
FF6B6B00FF484800FF252500FF000000DC000000B90000009600000073000000
50000000FFE3D400FFC7B100FFAB8E00FF8F6B00FF734800FF572500FF550000
DC490000B93D0000963100007325000050190000FFF0D400FFE2B100FFD48E00
FFC66B00FFB84800FFAA2500FFAA0000DC920000B97A000096620000734A0000
50320000FFFFD400FFFFB100FFFF8E00FFFF6B00FFFF4800FFFF2500FFFF0000
DCDC0000B9B90000969600007373000050500000F0FFD400E2FFB100D4FF8E00
C6FF6B00B8FF4800AAFF2500AAFF000092DC00007AB90000629600004A730000
32500000E3FFD400C7FFB100ABFF8E008FFF6B0073FF480057FF250055FF0000
49DC00003DB90000319600002573000019500000D4FFD400B1FFB1008EFF8E00
6BFF6B0048FF480025FF250000FF000000DC000000B900000096000000730000
00500000D4FFE300B1FFC7008EFFAB006BFF8F0048FF730025FF570000FF5500
00DC490000B93D00009631000073250000501900D4FFF000B1FFE2008EFFD400
6BFFC60048FFB80025FFAA0000FFAA0000DC920000B97A000096620000734A00
00503200D4FFFF00B1FFFF008EFFFF006BFFFF0048FFFF0025FFFF0000FFFF00
00DCDC0000B9B900009696000073730000505000F2F2F200E6E6E600DADADA00
CECECE00C2C2C200B6B6B600AAAAAA009E9E9E0092929200868686007A7A7A00
6E6E6E0062626200565656004A4A4A003E3E3E0032323200262626001A1A1A00
0E0E0E00F0FBFF00A4A0A000808080000000FF0000FF000000FFFF00FF000000
FF00FF00FFFF0000FFFFFF000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
002A2D2A2D2A000000000000000000000000000000000000000000000000002D
2A2D2A2D2A2D2A2D000000000000000000000000000000000000000000002D2A
282ADADA2D2A2D2A2D0000000000000000000000000000000000000000002828
2ADA2A2DDA2D2A2D2A0000000000000000000000000000000000000000282D28
DA282D2D2DDA2D2A2D2A000000000000000000000000000000000000002D2828
DA2D282D2ADA2A2D2A2D0000000000000000000000000000000000000028282A
28DA282A28DA2D2A2D2A000000000000002A2D2A2D2A2D0000000000002D2828
282D28282ADA2A2D2A2D0000000000002A2DDADADADA2A2D2A0000000028282A
282A282A28DA2D2A2D2A000000000028282ADA2A2DDADA2A2D2A000000282828
28282A2828DA282D2A2D00000000002D2A28DA2D2A2DDA2D2A2D000000002828
28DADADADADA282A2D0000000000282A282ADA282D282DDA2D2A2D0000002828
DA28282828DA282D2A000000000028282828DA282A2D28DA2A2D2A0000000028
28282D2D28282D280000000000002D28282ADA282D282DDA2D2A2D0000000000
002D002D2A28000000000000000028282828DA28282DDADA282D280000000000
000000000000000000000000000028282828DA2A28DADA2A2D2A2D0000000000
0000000000000000000000000000282828DADADADA282A2D282D2A0000000000
000000000000000000000000000000282828DA28282A28282828000000000000
000000000000B8B80000000000000028282828280028282D2A2D000000000000
B8B8B8000000B8B8B8000000000000002828280028002D2828000000000000B8
B8B8B800000000B8B8000000000000000000000000000000000000000000B8B8
B8B8000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000B8000000
00000000000000000000000000000000000000000000000000000000B8B80000
00000000000000000000000000000000000000000000B8B80000000000B80000
0000000000000000000000000000000000000000B8B8B8B80000000000000000
00000000000000000000000000000000000000B8B8B8B8000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000FFFFF83FFFFFE00FFFFFC007FFFF8003FFFF8003
FFFF0001FFFF0001FC1F0001F0070001E0030001C0010001C001800380008003
8000C0078000E00F8000F83F8000FF7F8000FE0FC001F007C001E003E003C0C3
F14781E3FF7FC1FFFF9F7DFFFFC63DFFFFC21DFFFF001EFFFE07063FFC0FF01F
FE1FFE0FFFFFFF0FFFFFFF8F}
Transparent = True
end
object Label1: TLabel
Left = 147
Top = 318
Width = 211
Height = 33
Caption = 'Inform<72>tica D.J.'
Font.Charset = ANSI_CHARSET
Font.Color = clWhite
Font.Height = -24
Font.Name = 'Arial Black'
Font.Style = []
ParentFont = False
Transparent = True
end
object Label2: TLabel
Left = 115
Top = 346
Width = 228
Height = 27
Caption = 'w w w . i n f d j . c o m'
Font.Charset = ANSI_CHARSET
Font.Color = clWhite
Font.Height = -19
Font.Name = 'Arial Black'
Font.Style = []
ParentFont = False
Transparent = True
end
object Image3: TImage
Left = 0
Top = 0
Width = 150
Height = 150
AutoSize = True
Picture.Data = {
07544269746D6170700C0000424D700C00000000000000000000280000009600
0000960000000100080001000000280C0000120B0000120B0000040000000400
000000000000FFFFFF00FDFCFD00DBAB30009602000096020000420201030103
1502010301033B020000430201030103160201033A0200000702040306020003
0303030004020005010203030300050200050303030203000502010307020103
060200030303030005020003030303000B020003030303000702010301030502
0003030303000602000303030300050204030502000903020202030202020300
04020003030303000A0200000A02010305020103080201030103070200050302
02030300050201030702010305020103010307020003030303000E0201030502
0003030303000802010305020103060201030103080200090302020203020202
030007020103090200000A020103010304020103080201030103070200050302
0202030005020103070201030602010307020003030203000E02010305020004
0302030307020103010304020103060201030103080200090302020203020202
030007020103090200000A020103040204030602010308020005030202020300
050201030702010306020103060200050303020203000D020103050200040302
0303060201030103050201030602000403020303060200090303020203020202
0300060201030103090200000802010301030602000503020203030004020103
0103070200060302020203030402010307020103010305020103060200050302
020203000B020103010306020005030202030300040201030103060201030103
050200060303030203030502000803020203020202030502010301030A020000
0802010307020006030302020303040201030702010304020103040201030103
0702010305020103060200050302020203000B0201030702000A030102020302
0202030308020103060200050302020203000502000803020203030202030502
0005030202020100070200000902000803030302020102020403060200030303
0300040201030402010305020003030303000402010301030502040300040202
0203040201030B02001003030302020203030202020303020201040304020403
050204030502080305020403080200003B02010301032F020103290200003502
0103060201032F02010329020000350201036002000096020000960200009602
0000960200009602000096020000370200030102020006031402060306020403
090204030F0206030003020201000D02000009020603070206030B0206030A02
120308020B030003020202000603070207030A020C030D020000090206030702
06030B020603090213030702150306020803080210030B020000090206030702
06030B020603080214030602150307020803070211030B020000090206030702
06030B020603080214030602150307020703070213030A020000090206030702
06030B0206030702090304020803050208030502090307020603070209030402
08030902000009020603070206030B0206030602080308020603050206030802
08030702060307020703070207030902000009020603070206030B0206030602
0703090206030502060309020603080206030702060309020703080200000902
0603070206030B020603060206030A0206030502060309020603080206030702
06030101060200030102020006030802000009020603070206030B0206030602
06030A020603050206030902060308020603060206030B020603080200000902
0603070206030B020603060206030A0206030502060309020603080206030602
060301010A0206030802000009020603070206030B020603050207030A020603
060206030802060308020603060206030B020703070200000902060307020603
0B020603050206030B0206030602090305020603080206030602060301010B02
06030702000009020603070206030B020603050206030B020603070213030802
06030602060301010B0206030702000009020603070206030B02060305020603
0B0206030702130308020603060206030C020603070200000902060307020603
0B020603050207030A0206030902110308020603060206030C02060307020000
09020603070206030B020603050207030A0206030B020F030802060306020603
0C0205030802000009020603070206030B020603060206030A02060313020703
08020603060207030A0206030802000009020603070206030B02060306020703
090206031402060308020603070206030A020603080200000902060307020603
0B02060306020703090206031402060308020603070206030902070308020000
0902060307020703090206030702010107030802060313020603090206030702
070308020603090200000902060307020A030402080308020903050207030902
0103010306020803090206030802070305020803090200000602090307021503
0A02140309020F030A0206030702010113030A02000006020903070214030C02
1303080210030A020603090211030B020000060209030702050301020D030E02
120308020F030B0206030B020E030C0200000602090307020503010201020B03
1002110308020E030C0206030C020C030D020000200204031702070301020603
0B0208030F0206030F0207030F02000043020603160201010B02060325020000
43020603160201010B020603250200000B020103010336020603220206032502
00000A0204033502060322020603250200000902060334020603220206032502
0000090206033402060322020603250200000902060334020603220206032502
00000A0204033502060322020603250200000B02010301033702050322020603
2502000045020403230205032502000096020000960200009602000096020000
960200009602000096020000960200009602000045020B034602000045020B03
4602000045020B034602000045020B034602000045020B034602000039020801
04020B030101450200003602010101020D000B03000300000000430200003202
0004010101020F000B030600010204013B020000320213000B030A0001020101
3A020000310214000B030D000102010137020000300215000B030F0001020101
35020000300215000B0311000101010133020000300215000B03120000030101
0100310200002F02100006020B030102010212000101310200002F020B000003
0202010008020B0306020F000101300200002E02070010020B0308020E000101
01012E0200002E020400000802010101020201010B020B030A020D002F020000
45020B03090201010D002F02000045020B030A020E002E02000045020B030B02
0D0001012D02000045020B030B020D0001012D02000045020B030A020E002E02
000045020B0309020F0001012D02000045020B0307020101100001012D020000
45020B030602120001012D02000045020A03050214002E020000450205030008
020202010101020215002F02000049020004010101021A0001012E0200004802
1E0030020000420204011F00310200003E020004010102022200010131020000
3B02010126000101330200003902010101022500360200003502000301010200
26003802000034020101010224003C020000350223003E020000340220004202
000033021C0047020000320219004B0200003202150007020103010346020000
3202130007020403460200003102110000060202010102020803460200003102
0F00010104020B034602000031020E00010105020B034602000031020E000101
05020B0346020000300201010E0006020B034602000031020E0006020B030F02
01013602000032020E0000050201020202000B030C0200050101020001003502
000033020E0004020B0301010702000301010200050001013502000032020101
110001020B03050101020B0035020000340211000B0311003502000035021000
0B03110035020000350201010F000B0311003502000038020D000B0311003502
000037020004010202020A000B0311003502000038020101050207000B031000
010135020000410204000B030A003C02000045020B034602000045020B034602
000045020B034602000045020B034602000045020B034602000045020B034602
000096020000960200009602000096020000470208034702000045020C034502
000044020E034402000043021003430200004202110343020000420211034302
0000410213034202000041021303420200004102130342020000410213034202
000041021303420200004202110343020000420211034302000043020F034402
000044020D034502000045020B034602000047020703480200010000}
Transparent = True
end
object Label3: TLabel
Left = 104
Top = 216
Width = 169
Height = 25
AutoSize = False
Caption = 'Desarrollado por:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Transparent = True
end
object Label4: TLabel
Left = 160
Top = 8
Width = 201
Height = 25
AutoSize = False
Caption = 'indalo security systems'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Transparent = True
end
object Label5: TLabel
Left = 152
Top = 40
Width = 209
Height = 25
Alignment = taCenter
AutoSize = False
Caption = 'Castillo de Utrera N<>6'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Transparent = True
WordWrap = True
end
object Label6: TLabel
Left = 150
Top = 62
Width = 209
Height = 25
Alignment = taCenter
AutoSize = False
Caption = '41500 Alcal<61> de Guadaira'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Transparent = True
WordWrap = True
end
object Label7: TLabel
Left = 150
Top = 80
Width = 209
Height = 25
Alignment = taCenter
AutoSize = False
Caption = 'Sevilla (Espa<70>a)'
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Transparent = True
WordWrap = True
end
object Label8: TLabel
Left = 150
Top = 120
Width = 211
Height = 25
Alignment = taCenter
AutoSize = False
Caption = 'www.indalosecurity.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
Transparent = True
end
object Timer1: TTimer
Interval = 5000
OnTimer = Timer1Timer
end
end

40
cap_gestion/Portada.h Normal file
View File

@ -0,0 +1,40 @@
//---------------------------------------------------------------------------
#ifndef ListInitH
#define ListInitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <jpeg.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
//---------------------------------------------------------------------------
class TAcercaDe : public TForm
{
__published: // IDE-managed Components
TImage *Image1;
TImage *Image2;
TLabel *Label1;
TLabel *Label2;
TTimer *Timer1;
TImage *Image3;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TLabel *Label8;
TImage *Image4;
void __fastcall Timer1Timer(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TAcercaDe(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TAcercaDe *AcercaDe;
//---------------------------------------------------------------------------
#endif

BIN
cap_gestion/btickets.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
cap_gestion/buscar.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
cap_gestion/cap.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

179
cap_gestion/capg.bpr Normal file
View File

@ -0,0 +1,179 @@
<?xml version='1.0' encoding='utf-8' ?>
<!-- C++Builder XML Project -->
<PROJECT>
<MACROS>
<VERSION value="BCB.06.00"/>
<PROJECT value="..\bin\capg.exe"/>
<OBJFILES value="..\obj\capg.obj ..\obj\capg_abonados.obj ..\obj\capg_gfact.obj
..\obj\capg_ifact.obj ..\obj\capg_menu.obj ..\obj\capg_qrLabonados.obj
..\obj\capg_tabonados.obj ..\obj\capg_tarifas.obj ..\obj\crd_ctrl.obj
..\obj\Portada.obj ..\obj\tickets.obj"/>
<RESFILES value="capg.res"/>
<IDLFILES value=""/>
<IDLGENFILES value=""/>
<DEFFILE value=""/>
<RESDEPEN value="$(RESFILES) capg_abonados.dfm capg_gfact.dfm capg_ifact.dfm capg_menu.dfm
capg_qrLabonados.dfm capg_tabonados.dfm capg_tarifas.dfm crd_ctrl.dfm
Portada.dfm tickets.dfm"/>
<LIBFILES value=""/>
<LIBRARIES value="vclx.lib qrpt.lib JDsoft.lib bdertl.lib vcldb.lib dbrtl.lib rtl.lib vcl.lib"/>
<SPARELIBS value="vcl.lib rtl.lib dbrtl.lib vcldb.lib bdertl.lib JDsoft.lib qrpt.lib vclx.lib"/>
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
indy.bpi bcb2kaxserver.bpi ZCore.bpi ZParseSql.bpi ZPlain.bpi ZDbc.bpi
ZComponent.bpi JDsoft.bpi TCabForBuilder.bpi LM2000_vcl.bpi"/>
<PATHCPP value=".;"/>
<PATHPAS value=".;"/>
<PATHRC value=".;"/>
<PATHASM value=".;"/>
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="ilink32"/>
<USERDEFINES value=""/>
<SYSDEFINES value="NO_STRICT"/>
<MAINSOURCE value="capg.cpp"/>
<INCLUDEPATH value="..;cap_gestion;$(BCB)\include;$(BCB)\include\vcl;C:\Programacion\VCLs\include"/>
<LIBPATH value="..;$(BCB)\Projects\Lib;C:\Programacion\VCLs\lib;cap_gestion;$(BCB)\lib\obj;$(BCB)\lib;J:\MisDoc_Linux\CBuilder\Ventas\CAP\LM2000_vcl"/>
<WARNINGS value="-w-par"/>
<OTHERFILES value=""/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I.. -Icap_gestion -I$(BCB)\include -I$(BCB)\include\vcl
-IC:\Programacion\VCLs\include -src_suffix cpp -boa"/>
<CFLAG1 value="-O2 -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -c -tW -tWM"/>
<PFLAGS value="-N2..\obj -N0..\obj -$Y- -$L- -$D- -$A8 -v -JPHNE -M"/>
<RFLAGS value=""/>
<AFLAGS value="/mx /w2 /zn"/>
<LFLAGS value="-l..\obj -I..\obj -D&quot;&quot; -aa -Tpe -x -Gn"/>
<OTHERFILES value=""/>
</OPTIONS>
<LINKER>
<ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
<OTHERFILES value=""/>
</LINKER>
<FILELIST>
<FILE FILENAME="capg.res" FORMNAME="" UNITNAME="capg.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg.cpp" FORMNAME="" UNITNAME="capg" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg.cpp" FORMNAME="Form4" UNITNAME="capg" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_abonados.cpp" FORMNAME="Form1" UNITNAME="capg_abonados" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_gfact.cpp" FORMNAME="gFact" UNITNAME="capg_gfact" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_ifact.cpp" FORMNAME="iFact" UNITNAME="capg_ifact" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_menu.cpp" FORMNAME="MainForm" UNITNAME="capg_menu" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_qrLabonados.cpp" FORMNAME="qrLAbonados" UNITNAME="capg_qrLabonados" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_tabonados.cpp" FORMNAME="Form2" UNITNAME="capg_tabonados" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="capg_tarifas.cpp" FORMNAME="fTarifas" UNITNAME="capg_tarifas" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="crd_ctrl.cpp" FORMNAME="CardCtrl" UNITNAME="crd_ctrl" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="Portada.cpp" FORMNAME="AcercaDe" UNITNAME="Portada" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
<FILE FILENAME="tickets.cpp" FORMNAME="fTickets" UNITNAME="tickets" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
</FILELIST>
<BUILDTOOLS>
</BUILDTOOLS>
<IDEOPTIONS>
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=3082
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[Excluded Packages]
..\LM2000_vcl\LM2000_vcl.bpl=Funciones para el Manejo del LM2000
[HistoryLists\hlIncludePath]
Count=4
Item0=..;cap_gestion;$(BCB)\include;$(BCB)\include\vcl;C:\Programacion\VCLs\include
Item1=..\;cap_gestion;$(BCB)\include;$(BCB)\include\vcl;C:\Programacion\VCLs\include
Item2=cap_gestion;$(BCB)\include;$(BCB)\include\vcl;C:\Programacion\VCLs\include
Item3=cap_gestion;$(BCB)\include;$(BCB)\include\vcl
[HistoryLists\hlLibraryPath]
Count=5
Item0=..;$(BCB)\Projects\Lib;C:\Programacion\VCLs\lib;cap_gestion;$(BCB)\lib\obj;$(BCB)\lib;J:\MisDoc_Linux\CBuilder\Ventas\CAP\LM2000_vcl
Item1=..\;$(BCB)\Projects\Lib;C:\Programacion\VCLs\lib;cap_gestion;$(BCB)\lib\obj;$(BCB)\lib;J:\MisDoc_Linux\CBuilder\Ventas\CAP\LM2000_vcl
Item2=$(BCB)\Projects\Lib;C:\Programacion\VCLs\lib;cap_gestion;$(BCB)\lib\obj;$(BCB)\lib;J:\MisDoc_Linux\CBuilder\Ventas\CAP\LM2000_vcl
Item3=$(BCB)\Projects\Lib;C:\Programacion\VCLs\lib;cap_gestion;$(BCB)\lib\obj;$(BCB)\lib
Item4=cap_gestion;$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=$(BCB)\source\vcl
[HistoryLists\hlConditionals]
Count=1
Item0=_DEBUG
[HistoryLists\hlIntOutputDir]
Count=2
Item0=..\obj
Item1=bin
[HistoryLists\hlFinalOutputDir]
Count=4
Item0=..\bin\
Item1=..\bin
Item2=obj\
Item3=obj
[HistoryLists\hIBPIOutputDir]
Count=2
Item0=..\obj
Item1=obj
[Debugging]
DebugSourceDirs=$(BCB)\source\vcl
[Parameters]
RunParams=
Launcher=
UseLauncher=0
DebugCWD=
HostApplication=
RemoteHost=
RemotePath=
RemoteLauncher=
RemoteCWD=
RemoteDebug=0
[Compiler]
ShowInfoMsgs=0
LinkDebugVcl=0
LinkCGLIB=0
[CORBA]
AddServerUnit=1
AddClientUnit=1
PrecompiledHeaders=1
[Language]
ActiveLang=
ProjectLang=
RootDir=
</IDEOPTIONS>
</PROJECT>

34
cap_gestion/capg.cpp Normal file
View File

@ -0,0 +1,34 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES("capg.res");
USEFORM("capg_abonados.cpp", Form1);
USEFORM("capg_gfact.cpp", gFact);
USEFORM("capg_ifact.cpp", iFact);
USEFORM("capg_menu.cpp", MainForm);
USEFORM("capg_qrLabonados.cpp", qrLAbonados);
USEFORM("capg_tabonados.cpp", Form2);
USEFORM("capg_tarifas.cpp", fTarifas);
USEFORM("crd_ctrl.cpp", CardCtrl);
USEFORM("Portada.cpp", AcercaDe);
USEFORM("tickets.cpp", fTickets);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TAcercaDe), &AcercaDe);
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------------------

16
cap_gestion/capg.dfm Normal file
View File

@ -0,0 +1,16 @@
object Form4: TForm4
Left = 192
Top = 120
Width = 783
Height = 540
Caption = 'Form4'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end

21
cap_gestion/capg.h Normal file
View File

@ -0,0 +1,21 @@
//---------------------------------------------------------------------------
#ifndef capgH
#define capgH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm4 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm4(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm4 *Form4;
//---------------------------------------------------------------------------
#endif

BIN
cap_gestion/capg.res Normal file

Binary file not shown.

View File

@ -0,0 +1,617 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <inifiles.hpp>
#include "capg_abonados.h"
#include "crd_ctrl.h"
#include "capg_qrLabonados.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
isSettingData = false;
PageControl1->ActivePage = TabSheet1;
PageControl2->ActivePage = TabSheet3;
TbTAbonados->Active = true;
TbAbonados->Active = true;
TbVehiculos->Active = true;
TbCards->Active = true;
TbFacturas->Active = true;
SelIndex->ItemIndex = 0;
TIniFile *ini;
ini = new TIniFile( ExtractFileDir( Application->ExeName ) + "\\CAP.INI" );
// Cargamos los importes del periodo (Mes/biM/triM/Anual)
ImportesPeriodo[0] = ini->ReadFloat( "CAP_g", "ImporteMensual", 0.0 );
ImportesPeriodo[1] = ini->ReadFloat( "CAP_g", "ImporteBimestral", 0.0 );
ImportesPeriodo[2] = ini->ReadFloat( "CAP_g", "ImporteTrimestral", 0.0 );
ImportesPeriodo[3] = ini->ReadFloat( "CAP_g", "ImporteAnual", 0.0 );
cfgPWD = ini->ReadString( "CAP_g", "cfgPWD", "default" );
delete ini;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbAbonadosBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbAbonados -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbAbonados -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbAbonados -> FieldDefs -> Add("ida", ftAutoInc, 0, false );
TbAbonados -> FieldDefs -> Add("dni", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("nombre", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("apellidos", ftString, 40, false );
TbAbonados -> FieldDefs -> Add("direccion", ftString, 40, false );
TbAbonados -> FieldDefs -> Add("localidad", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("provincia", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("cp", ftInteger, 0, false );
TbAbonados -> FieldDefs -> Add("telefono1", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("telefono2", ftString, 20, false );
TbAbonados -> FieldDefs -> Add("tipoa", ftInteger, 0, false );
TbAbonados -> FieldDefs -> Add("estado", ftInteger, 0, false );
TbAbonados -> FieldDefs -> Add("vip", ftBoolean, 0, false );
TbAbonados -> FieldDefs -> Add("dentro", ftBoolean, 0, false );
TbAbonados -> FieldDefs -> Add("falta", ftDate, 0, false );
TbAbonados -> FieldDefs -> Add("fperiodo", ftInteger, 0, false );
TbAbonados -> IndexDefs-> Clear();
TbAbonados->IndexDefs->Add("Primary", "ida", TIndexOptions() << ixPrimary << ixUnique);
// Creamos la base...
TbAbonados -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbVehiculosBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbVehiculos -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbVehiculos -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbVehiculos -> FieldDefs -> Add("idc", ftAutoInc, 0, false );
TbVehiculos -> FieldDefs -> Add("ida", ftInteger, 0, false );
/** CDA se compone como: (idCard)+(ida)*100
donde idCard va desde 0 .. 99
*/
TbVehiculos -> FieldDefs -> Add("idCard", ftInteger, 0, false );
TbVehiculos -> FieldDefs -> Add("matricula", ftString, 10, false );
TbVehiculos -> FieldDefs -> Add("color", ftString, 15, false );
TbVehiculos -> FieldDefs -> Add("modelo", ftString, 40, false );
TbVehiculos -> FieldDefs -> Add("idplaza", ftString, 5, false );
TbVehiculos -> IndexDefs-> Clear();
TbVehiculos->IndexDefs->Add("Primary", "idc", TIndexOptions() << ixPrimary << ixUnique);
TbVehiculos->IndexDefs->Add("iAbonados", "ida;idCard", TIndexOptions() << ixCaseInsensitive );
TbVehiculos->IndexDefs->Add("iCards", "idCard", TIndexOptions() << ixCaseInsensitive );
// Creamos la base...
TbVehiculos -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid1DblClick(TObject *Sender)
{
PageControl1->ActivePage = TabSheet2;
PageControl2->ActivePage = TabSheet3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BuscadorKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
TbAbonados->Locate( SelIndex->Items->Strings[SelIndex->ItemIndex], Buscador->Text, TLocateOptions() << loCaseInsensitive << loPartialKey );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
//
TbBusqMatriculas->Active = true;
if ( TbBusqMatriculas->Locate( "matricula", Buscador->Text, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
if ( TbAbonados->Locate( "ida", TbBusqMatriculas->FieldByName("ida")->AsInteger, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
PageControl1->ActivePage = TabSheet2;
}
}
TbBusqMatriculas->Active = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbAbonadosBeforeDelete(TDataSet *DataSet)
{
if ( Application->MessageBox("<EFBFBD>Eliminar al abonado actual?", "CAP: Eliminaci<63>n", MB_OKCANCEL) != IDOK)
{
Abort();
return;
}
// Eliminamos todos los vehiculos de este ABONADO
while (1)
{
try {
// Finalmente ELIMINAMOS al vehiculo
TbVehiculos->Delete();
} catch(...) {
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbCardsBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbCards -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbCards -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbCards -> FieldDefs -> Add("id", ftAutoInc, 0, false );
TbCards -> FieldDefs -> Add("idowner", ftInteger, 0, false );
TbCards -> FieldDefs -> Add("idh", ftInteger, 0, false );
// idCARD se forma de la siguiente manera:
// (32 bits) bit 0 (1) Indica Abonado=0 <20> Ocasional=1
// En los abonados:
// bit 1..5 (5) N<>mero de version (vCard)
// bit 6..32 (28) ID poseedor tarjeta (idowner)
// No Abonados:
// bit 1..32 (31) ID cliente ocacional
TbCards -> FieldDefs -> Add("idCard", ftInteger, 0, false );
TbCards -> FieldDefs -> Add("vCard", ftInteger, 0, false );
TbCards -> FieldDefs -> Add("fechaM", ftDate, 0, false );
TbCards -> FieldDefs -> Add("acceso", ftBoolean, 0, false );
TbCards -> FieldDefs -> Add("vip", ftBoolean, 0, false );
TbCards -> FieldDefs -> Add("msg", ftString, 32, false );
TbCards -> IndexDefs-> Clear();
TbCards->IndexDefs->Add("Primary", "id", TIndexOptions() << ixPrimary << ixUnique);
TbCards->IndexDefs->Add("iOwner", "idowner", TIndexOptions() << ixCaseInsensitive );
TbCards->IndexDefs->Add("iCards", "idCard", TIndexOptions() << ixCaseInsensitive << ixUnique );
// Creamos la base...
TbCards -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid2DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if ( Column->ID == 4 )
{
if ( TbVehiculos->FieldByName("idCard")->AsInteger > 0 )
{
DBGrid2 -> Canvas -> StretchDraw( Rect, CardOK->Picture->Graphic );
}
} else {
DBGrid2 -> DefaultDrawColumnCell( Rect, DataCol, Column, State );
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbVehiculosBeforeDelete(TDataSet *DataSet)
{
// Eliminamos la TARJETA asociada a este VEHICULO
if ( TbCards->Locate( "id", TbVehiculos->FieldByName("idCard")->AsInteger, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
TbCards->Delete();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid2DblClick(TObject *Sender)
{
if ( DBGrid2->SelectedIndex == 4 )
{
if ( TbVehiculos->State == dsEdit || TbVehiculos->State == dsInsert )
TbVehiculos->Post();
int idCard, idCardA;
// Abrimos el editor de TARJETA
TCardCtrl *CCard;
CCard = new TCardCtrl(this);
if ( TbVehiculos->FieldByName("idCard")->IsNull )
idCardA = -1;
else
idCardA = TbVehiculos->FieldByName("idCard")->AsInteger;
idCard = CCard->LocateCard( idCardA,
TbVehiculos->FieldByName("idc")->AsInteger );
if ( idCard != idCardA )
{
TbVehiculos->Edit();
TbVehiculos->FieldByName("idCard")->AsInteger = idCard;
TbVehiculos->Post();
}
CCard->ShowModal();
delete CCard;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DsAbonadosUpdateData(TObject *Sender)
{
int idc; bool acceso; AnsiString msg;
// Propagamos los cambios de tarjeta a todos sus vehiculos
acceso = false;
switch( TbAbonados->FieldByName("estado")->AsInteger )
{
// ALTA
case 0:
//########################
//########################
if ( TbTAbonados->Locate( "idta", TbAbonados->FieldByName("tipoa")->AsInteger, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
acceso = TbTAbonados->FieldByName("acceso")->AsBoolean;
else
acceso = false;
msg = TbTAbonados->FieldByName("msg")->AsString;
break;
// Sancionado
case 1:
msg = " SANCIONADO Pase por CAJA";
break;
// Baja temporal
case 2:
msg = " BAJA ImPagado Pase por CAJA";
break;
// Baja definitiva
case 3:
//123456789ABCDEF-123456789ABCDEF-
msg = "BAJA DEFINITIVA Pase por CAJA";
break;
default:
msg = "Por favor, Pase por CAJA";
break;
}
TbVehiculos->First();
while ( !TbVehiculos->Eof )
{
idc = TbVehiculos->FieldByName("idCard")->AsInteger;
if ( TbCards->Locate( "id", idc, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
TbCards->Edit();
TbCards->FieldByName("idh")->AsInteger = TbAbonados->FieldByName("tipoa")->AsInteger;
TbCards->FieldByName("acceso")->AsBoolean = acceso;
TbCards->FieldByName("vip")->AsBoolean = TbAbonados->FieldByName("vip")->AsBoolean;
TbCards->FieldByName("msg")->AsString = msg;
TbCards->Post();
}
TbVehiculos->Next();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if ( TbAbonados->State == dsEdit || TbAbonados->State == dsInsert )
TbAbonados->Post();
if ( TbVehiculos->State == dsEdit || TbVehiculos->State == dsInsert )
TbVehiculos->Post();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PageControl2Change(TObject *Sender)
{
if ( TbAbonados->State == dsEdit || TbAbonados->State == dsInsert )
TbAbonados->Post();
if ( TbVehiculos->State == dsEdit || TbVehiculos->State == dsInsert )
TbVehiculos->Post();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
if ( TbAbonados->State == dsEdit || TbAbonados->State == dsInsert )
TbAbonados->Post();
if ( TbVehiculos->State == dsEdit || TbVehiculos->State == dsInsert )
TbVehiculos->Post();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
TbAbonados->Edit();
TbAbonados->FieldByName("estado")->AsInteger = ComboBox1->ItemIndex;
TbAbonados->Post();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DsAbonadosDataChange(TObject *Sender,
TField *Field)
{
if ( isSettingData ) return;
ComboBox1->ItemIndex = TbAbonados->FieldByName("estado")->AsInteger;
ComboBox2->ItemIndex = TbAbonados->FieldByName("fperiodo")->AsInteger;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AvanzaCampo(TObject *Sender, char &Key)
{
if ( Key != VK_RETURN ) return;
try {
TbAbonados->Post();
} catch(...) {
// Nothing
}
if ( Sender == (TObject *)DBEdit1 ) DBEdit2->SetFocus();
else
if ( Sender == (TObject *)DBEdit2 ) DBEdit6->SetFocus();
else
if ( Sender == (TObject *)DBEdit6 ) DBEdit3->SetFocus();
else
if ( Sender == (TObject *)DBEdit3 ) DBEdit4->SetFocus();
else
if ( Sender == (TObject *)DBEdit4 ) DBEdit5->SetFocus();
else
if ( Sender == (TObject *)DBEdit5 ) DBEdit7->SetFocus();
else
if ( Sender == (TObject *)DBEdit7 ) DBEdit8->SetFocus();
else
if ( Sender == (TObject *)DBEdit8 ) DBEdit9->SetFocus();
else
if ( Sender == (TObject *)DBEdit9 ) DBLookupComboBox2->SetFocus();
else
if ( Sender == (TObject *)DBLookupComboBox2 ) ComboBox1->SetFocus();
else
if ( Sender == (TObject *)ComboBox1 ) ComboBox2->SetFocus();
else
if ( Sender == (TObject *)ComboBox2 ) DBEdit1->SetFocus();
/*
else
if ( Sender == (TObject *)DBEdit11 ) DBEdit1->SetFocus();
*/
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbAbonadosNewRecord(TDataSet *DataSet)
{
TbAbonados->FieldByName("fAlta")->AsDateTime = TDateTime::CurrentDate();
TbAbonados->FieldByName("fInicio")->AsDateTime = TDateTime::CurrentDate();
TbAbonados->FieldByName("estado")->AsInteger = 0;
TbAbonados->FieldByName("fPeriodo")->AsInteger = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
isSettingData = true;
TbAbonados->Edit();
TbAbonados->FieldByName("fperiodo")->AsInteger = ComboBox2->ItemIndex;
TbAbonados->Post();
isSettingData = false;
}
//---------------------------------------------------------------------------
TDateTime __fastcall TForm1::DiasEnPeriodoDesde( TDateTime fechaE )
{
TDateTime NuevaFechaS;
unsigned short YY, MM, DD;
fechaE.DecodeDate( &YY, &MM, &DD );
// Le asignamos un nuevo periodo...
switch( TbAbonados->FieldByName("fperiodo")->AsInteger )
{
case 0: // Mensual
NuevaFechaS = EncodeDate( (MM==12)?(YY+1):YY, (MM==12)?1:(MM+1), 1 );
break;
case 1: // BiMestral
NuevaFechaS = EncodeDate( (MM>=11)?(YY+1):YY, (MM==11)?1:( (MM==12)?2:(MM+2) ), 1 );
break;
case 2: // TriMestral
NuevaFechaS = EncodeDate( (MM>=10)?(YY+1):YY, (MM==10)?1:( (MM==11)?2:( (MM==12)? 3: (MM+3) )), 1 );
break;
case 3: // Anual
NuevaFechaS = EncodeDate( YY+1, MM+1, 1 );
break;
default:
NuevaFechaS = fechaE + 15;
break;
}
return NuevaFechaS;
}
//---------------------------------------------------------------------------
Currency __fastcall TForm1::ImporteDelPeriodo()
{
if ( TbAbonados->FieldByName("fperiodo")->AsInteger >= 0 &&
TbAbonados->FieldByName("fperiodo")->AsInteger <= 3 )
return ImportesPeriodo[ TbAbonados->FieldByName("fperiodo" )->AsInteger ];
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RenovarAbonoClick(TObject *Sender)
{
bool firstTime;
TDateTime AntS = AntS.CurrentDate();
// No es la primera vez que renueva
if ( TbFacturas->RecordCount > 0 )
{
TbFacturas->Last(); // Ordenado al reves, asi que esta es la <20>ltima factura
// Si la <20>ltima factura no esta pagada
if ( ! TbFacturas->FieldByName("pagado")->AsBoolean )
{
// Pero esta aun vigente
if ( TbFacturas->FieldByName("fechaS")->AsDateTime < TDateTime::CurrentDate() )
{
TDateTime NuevaFechaS = DiasEnPeriodoDesde( TbFacturas->FieldByName("fechaE")->AsDateTime );
if ( NuevaFechaS >= TDateTime::CurrentDate() )
{
TbFacturas->Edit();
TbFacturas->FieldByName("fechaS")->AsDateTime = NuevaFechaS;
TbFacturas->FieldByName("importe")->AsInteger = ImporteDelPeriodo();
TbFacturas->Post();
}
} else {
// <20>ltima factura impagada / Fuera del periodo
ShowMessage( "Imposible renovar periodo de Abono. Aun tiene facturas pendientes, (expiradas)." );
}
} else { // La <20>ltima factura esta abonada...
// Preparamos un periodo nuevo, para el mes siguiente
AntS = TbFacturas->FieldByName( "fechaS" )->AsDateTime;
firstTime = true;
}
} else {
// Como es la primera vez que se emite un recibo
firstTime = true; // Realizar nuevo abono para el periodo en curso
}
// Primera vez que se emite un recibo, <20> el periodo del recibo
// esta dentro del mes en curso...
if ( firstTime )
{
TbFacturas->Insert();
TbFacturas->FieldByName("pagado")->AsBoolean = false;
// Si aun no ha expirado el periodo (ya pagado actual)
if ( AntS > TDateTime::CurrentDate() )
{
// Preparamos el nuevo periodo a partir de "fechaS"
TbFacturas->FieldByName("fechaE")->AsDateTime = AntS;
} else {
// Preparamos a partir del dia actual...
TbFacturas->FieldByName("fechaE")->AsDateTime = TDateTime::CurrentDate();
}
TbFacturas->FieldByName("fechaS")->AsDateTime = DiasEnPeriodoDesde( TbFacturas->FieldByName("fechaE")->AsDateTime );
TbFacturas->FieldByName("importe")->AsCurrency = ImporteDelPeriodo();
TbFacturas->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TbFacturasBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbFacturas -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbFacturas -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbFacturas -> FieldDefs -> Add("id", ftAutoInc, 0, false );
TbFacturas -> FieldDefs -> Add("idc", ftInteger, 0, false );
TbFacturas -> FieldDefs -> Add("fechaE", ftDate, 0, false );
TbFacturas -> FieldDefs -> Add("fechaS", ftDate, 0, false );
TbFacturas -> FieldDefs -> Add("horaE", ftTime, 0, false );
TbFacturas -> FieldDefs -> Add("horaS", ftTime, 0, false );
TbFacturas -> FieldDefs -> Add("importe", ftCurrency, 0, false );
TbFacturas -> FieldDefs -> Add("pagado", ftBoolean, 0, false );
TbFacturas -> FieldDefs -> Add("fechaP", ftDate, 0, false );
TbFacturas -> IndexDefs-> Clear();
TbFacturas->IndexDefs->Add("Primary", "id", TIndexOptions() << ixPrimary << ixUnique);
TbFacturas->IndexDefs->Add("iOwner", "idc", TIndexOptions() << ixCaseInsensitive );
TbFacturas->IndexDefs->Add("iExpira", "fechaS", TIndexOptions() << ixCaseInsensitive << ixDescending );
// Creamos la base...
TbFacturas -> CreateTable();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid3DblClick(TObject *Sender)
{
// Confirmar abono de factura...
if ( ! TbFacturas->FieldByName("pagado")->AsBoolean )
{
AnsiString NewString = TbFacturas->FieldByName("importe")->AsString;
// Label1->Caption = NewString;
if (InputQuery("Abono de la factura: "+TbFacturas->FieldByName("id")->AsString, "Importe:", NewString))
{
try { // NewString has been changed by the user, who clicked ok
bool ConAcceso;
Currency importe = NewString.ToDouble();
TbFacturas->Edit();
TbFacturas->FieldByName("importe")->AsCurrency = importe;
TbFacturas->FieldByName("pagado")->AsBoolean = true;
TbFacturas->FieldByName("fechaP")->AsDateTime = TDateTime::CurrentDate();
TbFacturas->Post();
TbAbonados->Edit();
TbAbonados->FieldByName("estado")->AsInteger = 0;
ConAcceso = ( TDateTime::CurrentDate() <= TbFacturas->FieldByName("fechaS")->AsDateTime );
TbAbonados->Post();
// Actualizamos la fecha maxima disponible de todas sus tarjetas
TbVehiculos->First();
int idc;
while ( !TbVehiculos->Eof )
{
idc = TbVehiculos->FieldByName("idCard")->AsInteger;
if ( TbCards->Locate( "id", idc, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
TbCards->Edit();
TbCards->FieldByName("fechaM")->AsDateTime = TbFacturas->FieldByName("fechaS")->AsDateTime;
TbCards->FieldByName("acceso")->AsBoolean = true;
TbCards->Post();
}
TbVehiculos->Next();
}
} catch (...) {
ShowMessage( "El importe introducido no es correcto" );
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if ( TbFacturas->FieldByName("pagado")->AsBoolean == false )
{
TbFacturas->Delete();
} else {
AnsiString PWD;
if ( InputQuery("Password administrativo", "Password:", PWD ) && PWD == cfgPWD )
TbFacturas->Delete();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
TqrLAbonados *qr;
qr = new TqrLAbonados(this);
qr->QuickRep1->Preview();
delete qr;
}
//---------------------------------------------------------------------------

Binary file not shown.

View File

@ -0,0 +1,970 @@
object Form1: TForm1
Left = -1019
Top = 115
Width = 640
Height = 480
BorderIcons = [biSystemMenu]
Caption = 'CAP-ges'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000001000800A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000010000000000000000
000080808000FFFFFF00C0C0C000FEFEFE00FDFDFD00A8F8FB00FCFCFC00FBFB
FB0085DEEE00A8F7FB00A6F6FA00A4F5F900FAFAFA0000008000F9F9F90083DC
ED0080DAEC00A7F8FA00F7F7F700F5F5F50081DBEC007ED9EB0078D4E800A7F7
FA00A5F6F900F8F8F800F6F6F600F3F3F300F1F1F1007FD9EB007CD7EA00A3F5
F900F2F2F200EFEFEF00EBEBEB007DD8EA007AD6E9006ECCE400A2F4F800A0F2
F800E8E8E8007BD7EA0078D5E90076D3E80074D1E700A0F2F7009EF1F7009DF0
F600EDEDED00EAEAEA00E7E7E700E4E4E400E1E1E10079D5E90072D0E60070CE
E5009CEFF6009BEEF60099EDF500F4F4F400ECECEC00E9E9E900E6E6E600E0E0
E000DDDDDD00DADADA0077D4E80074D2E7006CCBE40097ECF40096EBF400F0F0
F000DEDEDE00DBDBDB00D8D8D800D5D5D500D3D3D30075D2E7006ECDE4006CCB
E3006ACAE30067C8E20095EBF30094EAF30092E8F200EEEEEE00C7D8FF00D7D7
D700D4D4D400D1D1D10073D1E60070CFE5006CCCE3006ACAE20068C9E20065C7
E10063C5E00093E9F30091E7F2008FE6F100E3E3E300C2D4FF00D0D0D0006FCE
E5006DCCE4006BCBE30069C9E20064C6E10062C4E00060C2DF008EE5F100E5E5
E500E2E2E200BED1FF00CECECE00040404006BCAE30067C7E10065C6E1005EC0
DE005CBEDD008DE4F0008CE3F0008AE1EF00DFDFDF00DCDCDC00BDD0FF00B9CD
FF00CFCFCF00CDCDCD0067C8E10065C6E00060C3DF005EC1DE005CBFDD005ABD
DC0058BCDC008AE2EF0088E0EE0087DFEE00D9D9D900B5CAFF006B8FFF0063C4
DF0061C3DF005ABEDC0058BCDB0056BBDB0086DFED0085DEED0083DDEC00B1C7
FF00A4BCFF005FC2DF005CC0DE005ABEDD0056BADB0054B9DB0086DFEE0084DD
ED00ACC3FF00A8BFFF005DC1DE005BBFDD0059BDDC0057BBDB0055B9DA0053B8
DA0084DEED0083DCEC0080DAEB00B4C9FF00B0C6FF00A7BFFF0055BADA0053B8
D90051B7D90082DCEC0081DBEB007FDAEB00AFC5FF00ABC2FF0055BADB0051B6
D9004FB5D90080DBEC00A3BCFF004FB5D8004DB4D8004DB4D7004BB3D7004AB2
D7000070AB0000659A0000619400C5C5C500005E9000005A8A00005684000051
7D00004C760000527F00004E7900004A730000456C0000416600003D60000047
6F0000436900003F6300003A5C000036560000325000FFFFFF00000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000C9D0D1D2D2D3D4D50000000000000000000000
0000000000000000000000000000CACBCCCCCDCECF0000000000000000000000
0000000000000000000000000000C5C6C7C7C8C9000000000000000000000000
000000000000000000000000000000C2C3C30000C40000000000000000000000
000000000000000000000000000000C100007D7D8D0000000000000000000000
000000000000000000C000260000000032347D7D000000000000000000000000
0000000000000000BEBF002626000000020F00008F0000000000000000000000
00000000000000B1BCBD00262616000000008F8F8F8F00000000000000000000
000000000000B7A8B8B9002626BA1E00000000B6AEBB8F000000000000000000
0000000000A5A6AFB0B1002626B2B3B4000000B5B6AEAE8F0000000000000000
00000000A3A4A5A6A7A8002626A9AA15AB0000ACADA1A1AE8F00000000000000
000000919A9B9C899D9E0026269FA010151100808E9898A1A28F000000000000
000084909186879293940026268B9596970000808E988F8F8F99000000000000
006B83846185868788890026268A8B8C008D5800808E0000008F000000000000
69756B76776D6E78790126267A7B7C007D417E007F8000818200000000000137
68696A6B526C6D6E01262663646F007034713549007200595A7374000000015B
5C4F5D5E5F606101262662636400323E290E3F650066004B4C4D67000000014E
37384F505152012626535455005631313D230E29005700414258595A00000143
44373826450126263B4647001D1D1D0E4848480E0700000E494A4B4C4D000136
2C2D3738012626393A3B003C3C3C3C3C0E3C14210E3D3E3F0E4041420100012A
2B2C2D0126262E2F30001B1B130E1A1A0F0E0D1B1C0E31323334350103010124
2517002626202728001B131A0F0D0E0705040E081A140E22232901030100011E
1F160001181920011B1B130E0F0D080E0504020E1A1421222301030100000115
161700000118190C01131A0F0E0808070E0402070E1B1C1D0103010000000110
110100000001120B0C010F0D0D020707050E02070D1314010301000000000109
010000000000010A0B0C010D0807020505040E05080F01030100000000000001
0000000000000001060100010707050200000205080103010000000000000000
0000000000000000010000000105050002000205010301000000000000000000
0000000000000000000000000001000400040201030100000000000000000000
0000000000000000000000000000010204040103010000000000000000000000
0000000000000000000000000000000102010301000000000000000000000000
0000000000000000000000000000000001D6010000000000000000000000FFFC
00FFFFFE00FFFFFE00FFFFFF00FFFFE300FFFFC180FFFF8080FFFF00407FFE00
303FFC00101FF800000FF0000007E0000007C000000780000007000000070000
0003000000010000000000000000000000000000000100000003040000070E00
000F1F00001FBF88003FFFDC007FFFFE00FFFFFE01FFFFFE03FFFFFFC7FF}
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 24
object Panel1: TPanel
Left = 0
Top = 0
Width = 632
Height = 49
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label1: TLabel
Left = 0
Top = -4
Width = 389
Height = 45
Caption = 'Gestion de Abonados'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -32
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 577
Height = 9
Shape = bsBottomLine
end
object CardOK: TImage
Left = 488
Top = 0
Width = 24
Height = 24
AutoSize = True
Picture.Data = {
07544269746D617096010000424D960100000000000076000000280000001800
0000180000000100040000000000200100000000000000000000100000000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFF
991100000FFFFFFF00000000099110880FFF0000888888888001108800FF8888
888888888880088808FF88888888888888888888080F88888888888888888888
080B88888888888888888888080B888888888000000000008801888800000777
7777777808010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFF
FF777000000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BB
BBBB777700BB1111BBBBBBBBBBBB0000FFBBBBBBBBBBB33BBBBBFFFFFFB33BBB
3BBBB33BBB3BFFFFFFBB3BB33B3BBBBBBBBBFFFFFFB33BBBBBB3BBBBBBBBFFFF
FFB33BBBBBBBBBBBFFFFFFFFFFBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
Visible = False
end
end
object PageControl1: TPageControl
Left = 0
Top = 49
Width = 632
Height = 381
ActivePage = TabSheet2
Align = alClient
TabIndex = 1
TabOrder = 1
OnChange = PageControl1Change
object TabSheet1: TTabSheet
Caption = 'Localizador'
object Panel2: TPanel
Left = 0
Top = 0
Width = 624
Height = 41
Align = alTop
BevelOuter = bvLowered
TabOrder = 0
object Label2: TLabel
Left = 8
Top = 8
Width = 140
Height = 24
Caption = 'Buscar ficha por:'
end
object SelIndex: TComboBox
Left = 152
Top = 4
Width = 145
Height = 32
ItemHeight = 24
TabOrder = 0
Text = 'SelIndex'
Items.Strings = (
'nombre'
'apellidos'
'dni'
'telefono1')
end
object Buscador: TEdit
Left = 296
Top = 4
Width = 169
Height = 32
TabOrder = 1
OnKeyUp = BuscadorKeyUp
end
object BitBtn2: TBitBtn
Left = 472
Top = 4
Width = 145
Height = 34
Caption = 'Matriculas'
TabOrder = 2
OnClick = BitBtn2Click
Glyph.Data = {
46070000424D460700000000000036040000280000001A0000001C0000000100
0800000000001003000000000000000000000001000000000000000000004000
000080000000FF000000002000004020000080200000FF200000004000004040
000080400000FF400000006000004060000080600000FF600000008000004080
000080800000FF80000000A0000040A0000080A00000FFA0000000C0000040C0
000080C00000FFC0000000FF000040FF000080FF0000FFFF0000000020004000
200080002000FF002000002020004020200080202000FF202000004020004040
200080402000FF402000006020004060200080602000FF602000008020004080
200080802000FF80200000A0200040A0200080A02000FFA0200000C0200040C0
200080C02000FFC0200000FF200040FF200080FF2000FFFF2000000040004000
400080004000FF004000002040004020400080204000FF204000004040004040
400080404000FF404000006040004060400080604000FF604000008040004080
400080804000FF80400000A0400040A0400080A04000FFA0400000C0400040C0
400080C04000FFC0400000FF400040FF400080FF4000FFFF4000000060004000
600080006000FF006000002060004020600080206000FF206000004060004040
600080406000FF406000006060004060600080606000FF606000008060004080
600080806000FF80600000A0600040A0600080A06000FFA0600000C0600040C0
600080C06000FFC0600000FF600040FF600080FF6000FFFF6000000080004000
800080008000FF008000002080004020800080208000FF208000004080004040
800080408000FF408000006080004060800080608000FF608000008080004080
800080808000FF80800000A0800040A0800080A08000FFA0800000C0800040C0
800080C08000FFC0800000FF800040FF800080FF8000FFFF80000000A0004000
A0008000A000FF00A0000020A0004020A0008020A000FF20A0000040A0004040
A0008040A000FF40A0000060A0004060A0008060A000FF60A0000080A0004080
A0008080A000FF80A00000A0A00040A0A00080A0A000FFA0A00000C0A00040C0
A00080C0A000FFC0A00000FFA00040FFA00080FFA000FFFFA0000000C0004000
C0008000C000FF00C0000020C0004020C0008020C000FF20C0000040C0004040
C0008040C000FF40C0000060C0004060C0008060C000FF60C0000080C0004080
C0008080C000FF80C00000A0C00040A0C00080A0C000FFA0C00000C0C00040C0
C00080C0C000FFC0C00000FFC00040FFC00080FFC000FFFFC0000000FF004000
FF008000FF00FF00FF000020FF004020FF008020FF00FF20FF000040FF004040
FF008040FF00FF40FF000060FF004060FF008060FF00FF60FF000080FF004080
FF008080FF00FF80FF0000A0FF0040A0FF0080A0FF00FFA0FF0000C0FF0040C0
FF0080C0FF00FFC0FF0000FFFF0040FFFF0080FFFF00FFFFFF001D1D1D1D1D1D
1D1D1D1D1D1D1D1D1D1D1D1DDB1D1D1D1D1D1D1D00001D1D1D1D000000000000
0000000000000000921D1D1D1D1D1D1D00001D1D242400000000000000000000
00000000921D1D1D6D491D1D00001D1D24DBFFFFFFFFFFFFB6B6B6B6B6920000
921DDBB60000009200001D1D24DBDBFFFFFFFFFFFFB6B6B6B6B60000921DADD1
6824241D00001D1D24DB9292929292929292929292B60000B6D6CCF5CC80921D
00001D1D24DB6D6D6D6D4949494949496DB60024B6ADF5D0A464DB1D00001D1D
24DBDBDBDBDBFFFFFFFFFFFFB6B600248DD0F5CC80B61D1D00001D1D24DBDBDB
DBDBDBFFFFFFFFFFFFB6002484F5CCA4891D1D1D00001D1D24DB492424242424
24B6B66D24240020D0F1C8801D1D1D1D00001D1D24DBDBDBDBDBDBDBDB92042E
5777572E0464A4206D1D1D1D00001D1D24DBDBDBDBDBDBDB6D25779B77777777
57092024241D1D1D00001D1D24DBDBFFFFDBDBFF249B9B9B9B9B777777570524
49921D1D00001D1D24DB6D494992DB4972BBBBBBBB9B9B9B7777530049921D1D
00001D1D24FFDBDBDBDBDB24BB72BB72724E4E9B2A2A57046D921D1D00001D1D
24FFFFDBDBDBDB24BB25499249BB254E535353056DB61D1D00001D1D24FF6D49
4992DB24DF9225DF4972294E7377530592DB1D1D00001D1D24FFDBDBDBDBDB24
DFDB92FF924D729B292977041D1D1D1D00001D1D24FFFFFFFFFFDB6D92FFFFFF
FFDFBBBB9B775249DB1D1D1D00001D1D24FFDBDBDBDBFFDB24DBFFFFDFDFBBBB
9B77041D1D1D1D1D00001D1D24FF6D494992FFFFFF24BBDFDFBBBB9B7724921D
1D1D1D1D00001D1D24FFFFFFFFFFFFFFFFDB24297296722924B61D1D1D1D1D1D
00001D1D24FFFFFFFFFFFFFFFFFFDBFF6D6D006D1D1D1D1D1D1D1D1D00001D1D
246D6D6D6D6D6D6D6D6D6D6D6D6D00921D1D1D1D1D1D1D1D00001D1D000E0E0E
0E0E0E0E0E0E0E0E0E0E00921D1D1D1D1D1D1D1D00001D1D0033BBDFDFDFDF77
33333300053304B6DB1D1D1D1D1D1D1D00001D1D003333333333333333333333
3333041D1D1D1D1D1D1D1D1D00001D1D2424242424242424242424242424491D
1D1D1D1D1D1D1D1D0000}
end
end
object DBGrid1: TDBGrid
Left = 0
Top = 41
Width = 624
Height = 301
Align = alClient
DataSource = DsAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
ReadOnly = True
TabOrder = 1
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -13
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
OnDblClick = DBGrid1DblClick
Columns = <
item
Expanded = False
FieldName = 'dni'
Width = 75
Visible = True
end
item
Expanded = False
FieldName = 'nombre'
Width = 100
Visible = True
end
item
Expanded = False
FieldName = 'apellidos'
Width = 141
Visible = True
end
item
Expanded = False
FieldName = 'telefono1'
Width = 136
Visible = True
end
item
Expanded = False
FieldName = 'telefono2'
Width = 137
Visible = True
end>
end
end
object TabSheet2: TTabSheet
Caption = 'Ficha'
ImageIndex = 1
object PageControl2: TPageControl
Left = 0
Top = 73
Width = 624
Height = 269
ActivePage = TabSheet3
Align = alClient
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'Arial'
Font.Style = []
MultiLine = True
ParentFont = False
TabIndex = 0
TabOrder = 0
TabPosition = tpRight
OnChange = PageControl2Change
object TabSheet3: TTabSheet
Caption = 'General'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = []
ParentFont = False
object Bevel2: TBevel
Left = 0
Top = 0
Width = 560
Height = 261
Align = alClient
end
object Label6: TLabel
Left = 8
Top = 240
Width = 60
Height = 18
Caption = 'Periodo:'
end
object Label10: TLabel
Left = 248
Top = 56
Width = 69
Height = 18
Caption = 'Provincia:'
end
object Label9: TLabel
Left = 8
Top = 56
Width = 73
Height = 18
Caption = 'Localidad:'
end
object Label8: TLabel
Left = 8
Top = 16
Width = 71
Height = 18
Caption = 'Direcci'#243'n:'
end
object Label7: TLabel
Left = 472
Top = 56
Width = 27
Height = 18
Caption = 'CP:'
end
object Label11: TLabel
Left = 8
Top = 88
Width = 72
Height = 18
Caption = 'Tel'#233'fonos:'
end
object Label12: TLabel
Left = 328
Top = 128
Width = 103
Height = 18
Caption = 'Tipo Abonado:'
end
object Label13: TLabel
Left = 328
Top = 152
Width = 54
Height = 18
Caption = 'Estado:'
end
object DBEdit3: TDBEdit
Left = 96
Top = 8
Width = 489
Height = 26
DataField = 'direccion'
DataSource = DsAbonados
TabOrder = 0
OnKeyPress = AvanzaCampo
end
object DBEdit4: TDBEdit
Left = 96
Top = 48
Width = 145
Height = 26
DataField = 'localidad'
DataSource = DsAbonados
TabOrder = 1
OnKeyPress = AvanzaCampo
end
object DBEdit5: TDBEdit
Left = 320
Top = 48
Width = 145
Height = 26
DataField = 'provincia'
DataSource = DsAbonados
TabOrder = 2
OnKeyPress = AvanzaCampo
end
object DBEdit7: TDBEdit
Left = 504
Top = 48
Width = 81
Height = 26
DataField = 'cp'
DataSource = DsAbonados
TabOrder = 3
OnKeyPress = AvanzaCampo
end
object DBEdit8: TDBEdit
Left = 96
Top = 80
Width = 145
Height = 26
DataField = 'telefono1'
DataSource = DsAbonados
TabOrder = 4
OnKeyPress = AvanzaCampo
end
object DBEdit9: TDBEdit
Left = 248
Top = 80
Width = 145
Height = 26
DataField = 'telefono2'
DataSource = DsAbonados
TabOrder = 5
OnKeyPress = AvanzaCampo
end
object DBLookupComboBox2: TDBLookupComboBox
Left = 432
Top = 122
Width = 153
Height = 26
DataField = 'tipoa'
DataSource = DsAbonados
KeyField = 'idta'
ListField = 'desc'
ListSource = DsTAbonados
TabOrder = 6
end
object DBCheckBox1: TDBCheckBox
Left = 432
Top = 176
Width = 153
Height = 17
Caption = 'abonado es VIP'
DataField = 'vip'
DataSource = DsAbonados
TabOrder = 7
ValueChecked = 'True'
ValueUnchecked = 'False'
end
object ComboBox1: TComboBox
Left = 432
Top = 150
Width = 153
Height = 26
ItemHeight = 18
TabOrder = 8
Text = 'ComboBox1'
OnChange = ComboBox1Change
Items.Strings = (
'Alta'
'Sancionado'
'Baja-Impagado'
'Baja')
end
object ComboBox2: TComboBox
Left = 77
Top = 230
Width = 140
Height = 26
ItemHeight = 18
TabOrder = 9
OnChange = ComboBox2Change
Items.Strings = (
'Mensual - 1 Mes'
'BiMestral - 2 Meses'
'Trimestral - 3 Meses'
'Anual')
end
object RenovarAbono: TBitBtn
Left = 224
Top = 224
Width = 75
Height = 33
Caption = 'renovar'
TabOrder = 10
OnClick = RenovarAbonoClick
end
end
object TabSheet4: TTabSheet
Caption = 'Vehiculos'
ImageIndex = 1
object DBGrid2: TDBGrid
Left = 0
Top = 0
Width = 590
Height = 263
Align = alClient
DataSource = DsVehiculos
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Arial'
Font.Style = []
ParentFont = False
TabOrder = 0
TitleFont.Charset = ANSI_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = 'Arial'
TitleFont.Style = []
OnDrawColumnCell = DBGrid2DrawColumnCell
OnDblClick = DBGrid2DblClick
Columns = <
item
Expanded = False
FieldName = 'matricula'
Title.Alignment = taCenter
Title.Caption = 'Matricula'
Width = 121
Visible = True
end
item
Expanded = False
FieldName = 'color'
Title.Alignment = taCenter
Title.Caption = 'Color'
Width = 84
Visible = True
end
item
Expanded = False
FieldName = 'modelo'
Title.Alignment = taCenter
Title.Caption = 'Modelo'
Width = 268
Visible = True
end
item
Expanded = False
FieldName = 'idplaza'
Title.Alignment = taCenter
Title.Caption = 'Plaza'
Width = 56
Visible = True
end
item
Expanded = False
FieldName = 'idCard'
ReadOnly = True
Title.Alignment = taCenter
Title.Caption = 'T'
Width = 24
Visible = True
end>
end
end
object TabSheet5: TTabSheet
Caption = 'Facturas'
ImageIndex = 2
object DBGrid3: TDBGrid
Left = 0
Top = 37
Width = 590
Height = 226
Align = alBottom
DataSource = DsFacturas
Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit]
ReadOnly = True
TabOrder = 0
TitleFont.Charset = ANSI_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -19
TitleFont.Name = 'Arial'
TitleFont.Style = []
OnDblClick = DBGrid3DblClick
Columns = <
item
Expanded = False
FieldName = 'pagado'
Title.Caption = 'Pagada'
Width = 95
Visible = True
end
item
Expanded = False
FieldName = 'id'
Title.Alignment = taCenter
Title.Caption = 'Factura'
Width = 103
Visible = True
end
item
Expanded = False
FieldName = 'fechaE'
Title.Caption = 'Desde...'
Width = 105
Visible = True
end
item
Expanded = False
FieldName = 'fechaS'
Title.Alignment = taRightJustify
Title.Caption = '...Hasta'
Width = 95
Visible = True
end
item
Expanded = False
FieldName = 'importe'
Title.Alignment = taCenter
Title.Caption = 'Importe'
Width = 101
Visible = True
end>
end
object BitBtn1: TBitBtn
Left = 472
Top = 2
Width = 115
Height = 28
Caption = 'Eliminar'
TabOrder = 1
OnClick = BitBtn1Click
Glyph.Data = {
0E0A0000424D0E0A000000000000360400002800000042000000160000000100
080000000000D8050000C40E0000C40E00000001000000000000000000000000
5500000080000000AA000000D5000000FF00002B0000002B5500002B8000002B
AA00002BD500002BFF000055000000555500005580000055AA000055D5000055
FF000080000000805500008080000080AA000080D5000080FF0000AA000000AA
550000AA800000AAAA0000AAD50000AAFF0000D5000000D5550000D5800000D5
AA0000D5D50000D5FF0000FF000000FF550000FF800000FFAA0000FFD50000FF
FF005500000055005500550080005500AA005500D5005500FF00552B0000552B
5500552B8000552BAA00552BD500552BFF005555000055555500555580005555
AA005555D5005555FF005580000055805500558080005580AA005580D5005580
FF0055AA000055AA550055AA800055AAAA0055AAD50055AAFF0055D5000055D5
550055D5800055D5AA0055D5D50055D5FF0055FF000055FF550055FF800055FF
AA0055FFD50055FFFF008000000080005500800080008000AA008000D5008000
FF00802B0000802B5500802B8000802BAA00802BD500802BFF00805500008055
5500805580008055AA008055D5008055FF008080000080805500808080008080
AA008080D5008080FF0080AA000080AA550080AA800080AAAA0080AAD50080AA
FF0080D5000080D5550080D5800080D5AA0080D5D50080D5FF0080FF000080FF
550080FF800080FFAA0080FFD50080FFFF00AA000000AA005500AA008000AA00
AA00AA00D500AA00FF00AA2B0000AA2B5500AA2B8000AA2BAA00AA2BD500AA2B
FF00AA550000AA555500AA558000AA55AA00AA55D500AA55FF00AA800000AA80
5500AA808000AA80AA00AA80D500AA80FF00AAAA0000AAAA5500AAAA8000AAAA
AA00AAAAD500AAAAFF00AAD50000AAD55500AAD58000AAD5AA00AAD5D500AAD5
FF00AAFF0000AAFF5500AAFF8000AAFFAA00AAFFD500AAFFFF00D5000000D500
5500D5008000D500AA00D500D500D500FF00D52B0000D52B5500D52B8000D52B
AA00D52BD500D52BFF00D5550000D5555500D5558000D555AA00D555D500D555
FF00D5800000D5805500D5808000D580AA00D580D500D580FF00D5AA0000D5AA
5500D5AA8000D5AAAA00D5AAD500D5AAFF00D5D50000D5D55500D5D58000D5D5
AA00D5D5D500D5D5FF00D5FF0000D5FF5500D5FF8000D5FFAA00D5FFD500D5FF
FF00FF000000FF005500FF008000FF00AA00FF00D500FF00FF00FF2B0000FF2B
5500FF2B8000FF2BAA00FF2BD500FF2BFF00FF550000FF555500FF558000FF55
AA00FF55D500FF55FF00FF800000FF805500FF808000FF80AA00FF80D500FF80
FF00FFAA0000FFAA5500FFAA8000FFAAAA00FFAAD500FFAAFF00FFD50000FFD5
5500FFD58000FFD5AA00FFD5D500FFD5FF00FFFF0000FFFF5500FFFF8000FFFF
AA00FFFFD5003F3F3F006B6B6B0095959500C0C0C000FFFFFF00F6F6F6FEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEF6F6F6F6F6F6F6F6F6F60505050505050505F6
F6F6F6F6F6F6F6F6F6FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF6F6F60000F6F6
00000000000000000000000000000000FEF6F6F6F6F6F6F6F605050505050505
0505050505F6F6F6F6F6F6F600000000000000000000000000000000FEF6F6F6
0000F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6F6F6F6F605050505
05050505050505050505F6F6F6F6F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00
FEF6F6F60000F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6F6F6F605
050505FAFAFAFAFAFAFA0505050505F6F6F6F6F600FFFFFFFFFFFFFFFFFFFFFF
FFFFFF00FEF6F6F60000F6F600FFFFFFFFFF00FF00FF00000000FF00FEF6F6F6
F6F605050505FAFAFAFAFAFAFAFAFAFA05050505F6F6F6F600FFFFFFFFFF05FF
05FF05050505FF00FEF6F6F60000F6F600FFFF05FFFFFFFFFFFFFFFFFFFFFF00
FEF6F6F6F6050505050505FAFAFAFAFAFAFAFAFAFA05050505F6F6F600FFFF05
FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F600FF0505FFFFFFFFFFFFFFFF
FFFFFF00FEF6F6F6F605050505050505FAFA000000000000FAFA050505F6F6F6
00FF0505FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F600FFFFFF05FF0000
FF000000FF00FF00FEF6F6F600000000FA0505050500FEFEFEFEFEFE00FAFA05
0505F6F600FFFFFF05FF0505FF050505FF05FF00FEF6F6F60000F6F600FFFFFF
FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F654D254D2000005050505FFFFFF000000
0000FA050505F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F6
00FFFF05FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6D254D25400FEFE05050505FF
FFFFFEFEFEFE00050505F6F600FFFF05FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6
0000F6F600FF0505FFFF000000FF000000FFFF00FEF6F6F6D2D2D2D200FFFFFF
05050505FF0000000000FA050505F6F600FF0505FFFF050505FF050505FFFF00
FEF6F6F60000F6F600FFFFFF05FFFFFFFFFFFFFFFFFFFF00FEF6F6F6D2D2D2D2
000000FFFF05050505FFFEFEFE00FA050505F6F600FFFFFF05FFFFFFFFFFFFFF
FFFFFF00FEF6F6F60000F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6
0000000000FAFA00FFFF05050505000000FAFA050505F6F600FFFFFFFFFFFFFF
FFFFFFFFFFFFFF00FEF6F6F60000F6F600FFFF05FFFF00FF000000FF0000FF00
FEF6F6F6050505FAFAFAFAFA00FFFF05050505FAFAFAFA050505F6F600FFFF05
FFFF05FF050505FF0505FF00FEF6F6F60000F6F600FF0505FFFFFFFFFFFFFFFF
FFFFFF00FEF6F6F6050505FAFAFAFAFAFA0000FF05050505FAFAFA050505F6F6
00FF0505FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F600FFFFFF05FFFFFF
FFFFFFFFFFFFFF00FEF6F6F6F6050505FAFAFAFAFAFAFA00FF05050505FA0505
05F6F6F600FFFFFF05FFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F600FFFFFF
FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6F605050505FAFAFAFAFAFAFA00000505
0505050505F6F6F600FFFFFFFFFFFFFFFFFFFFFFFFFFFF00FEF6F6F60000F6F6
00000000FFFF000000FF0000FFFFFF00FEF6F6F6F6F605050505FAFAFAFAFAFA
FAFAFA0505050505F6F6F6F600000000FFFF050505FF0505FFFFFF00FEF6F6F6
0000F6F600FEFE0005FFFFFFFFFFFFFFFFFFFF00FEF6F6F6F6F6F60505050505
FAFAFAFAFAFA0505050505F6F6F6F6F600FEFE0005FFFFFFFFFFFFFFFFFFFF00
FEF6F6F60000F6F6F600FE00FFFFFFFFFFFFFFFFFFFFFF00FEF6F6F6F6F6F6F6
0505050505050505050505050505F6F6F6F6F6F6F600FE00FFFFFFFFFFFFFFFF
FFFFFF00FEF6F6F60000F6F6F6F60000000000000000000000000000F6F6F6F6
F6F6F6F6F6050505050505050505050505F6F6F6F6F6F6F6F6F6000000000000
0000000000000000F6F6F6F60000F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6
F6F6F6F6F6F6F6F6F6F6F60505050505050505F6F6F6F6F6F6F6F6F6F6F6F6F6
F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F60000}
NumGlyphs = 3
end
end
end
object Panel3: TPanel
Left = 0
Top = 0
Width = 624
Height = 73
Align = alTop
BevelOuter = bvLowered
TabOrder = 1
object Label3: TLabel
Left = 8
Top = 12
Width = 32
Height = 20
Caption = 'DNI:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label4: TLabel
Left = 8
Top = 44
Width = 60
Height = 20
Caption = 'Nombre:'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object DBText1: TDBText
Left = 464
Top = 8
Width = 65
Height = 25
DataField = 'falta'
DataSource = DsAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object DBEdit1: TDBEdit
Left = 96
Top = 4
Width = 121
Height = 28
DataField = 'dni'
DataSource = DsAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 0
OnKeyPress = AvanzaCampo
end
object DBEdit2: TDBEdit
Left = 96
Top = 36
Width = 161
Height = 28
DataField = 'nombre'
DataSource = DsAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 1
OnKeyPress = AvanzaCampo
end
object DBEdit6: TDBEdit
Left = 264
Top = 36
Width = 321
Height = 28
DataField = 'apellidos'
DataSource = DsAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 2
OnKeyPress = AvanzaCampo
end
end
end
end
object StatusBar1: TStatusBar
Left = 0
Top = 430
Width = 632
Height = 19
Panels = <>
SimplePanel = False
end
object DBNavigator1: TDBNavigator
Left = 506
Top = 54
Width = 120
Height = 18
DataSource = DsAbonados
VisibleButtons = [nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete]
Flat = True
Hints.Strings = (
'Primera ficha'
'Ficha anterior'
'Siguiente Ficha'
#218'ltima ficha'
'Nueva Ficha'
'Eliminar Ficha'
'Post edit'
'Cancel edit'
'Refresh data')
ParentShowHint = False
ShowHint = True
TabOrder = 3
end
object BitBtn3: TBitBtn
Left = 424
Top = 48
Width = 75
Height = 25
Caption = 'Impr.'
TabOrder = 4
OnClick = BitBtn3Click
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00300000000000
0003377777777777777308888888888888807F33333333333337088888888888
88807FFFFFFFFFFFFFF7000000000000000077777777777777770F8F8F8F8F8F
8F807F333333333333F708F8F8F8F8F8F9F07F333333333337370F8F8F8F8F8F
8F807FFFFFFFFFFFFFF7000000000000000077777777777777773330FFFFFFFF
03333337F3FFFF3F7F333330F0000F0F03333337F77773737F333330FFFFFFFF
03333337F3FF3FFF7F333330F00F000003333337F773777773333330FFFF0FF0
33333337F3F37F3733333330F08F0F0333333337F7337F7333333330FFFF0033
33333337FFFF7733333333300000033333333337777773333333}
NumGlyphs = 2
end
object TbAbonados: TTable
BeforeOpen = TbAbonadosBeforeOpen
BeforeDelete = TbAbonadosBeforeDelete
OnNewRecord = TbAbonadosNewRecord
TableName = 'datos\abonados.db'
Left = 300
Top = 76
end
object DsAbonados: TDataSource
DataSet = TbAbonados
OnDataChange = DsAbonadosDataChange
OnUpdateData = DsAbonadosUpdateData
Left = 300
Top = 44
end
object TbVehiculos: TTable
BeforeOpen = TbVehiculosBeforeOpen
BeforeDelete = TbVehiculosBeforeDelete
IndexName = 'iAbonados'
MasterFields = 'ida'
MasterSource = DsAbonados
TableName = 'datos\vehiculos.db'
Left = 336
Top = 74
end
object DsVehiculos: TDataSource
DataSet = TbVehiculos
Left = 336
Top = 48
end
object TbBusqMatriculas: TTable
BeforeOpen = TbVehiculosBeforeOpen
TableName = 'datos\vehiculos.db'
Left = 432
Top = 10
end
object TbCards: TTable
BeforeOpen = TbCardsBeforeOpen
IndexName = 'iOwner'
TableName = 'datos\cards.db'
Left = 464
Top = 10
end
object TbTAbonados: TTable
MasterSource = DsAbonados
TableName = 'datos\tabonados.db'
Left = 376
Top = 74
end
object DsTAbonados: TDataSource
DataSet = TbTAbonados
Left = 376
Top = 48
end
object TbFacturas: TTable
BeforeOpen = TbFacturasBeforeOpen
IndexName = 'iOwner'
MasterFields = 'ida'
MasterSource = DsAbonados
TableName = 'datos\TbFacturas.db'
Left = 532
Top = 28
end
object DsFacturas: TDataSource
DataSet = TbFacturas
Left = 536
end
end

144
cap_gestion/capg_abonados.h Normal file
View File

@ -0,0 +1,144 @@
//---------------------------------------------------------------------------
#ifndef capg_abonadosH
#define capg_abonadosH
#include <Buttons.hpp>
#include <Classes.hpp>
#include <ComCtrls.hpp>
#include <Controls.hpp>
#include <Db.hpp>
#include <DBCtrls.hpp>
#include <DBGrids.hpp>
#include <DBTables.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Grids.hpp>
#include <Mask.hpp>
#include <StdCtrls.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
/*
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <DBGrids.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <Buttons.hpp>
#include <DBCtrls.hpp>
#include <Mask.hpp>
#include <Graphics.hpp>
#include <DB.hpp>
*/
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TBevel *Bevel1;
TLabel *Label1;
TPageControl *PageControl1;
TTabSheet *TabSheet1;
TTabSheet *TabSheet2;
TPanel *Panel2;
TLabel *Label2;
TComboBox *SelIndex;
TEdit *Buscador;
TDBGrid *DBGrid1;
TStatusBar *StatusBar1;
TTable *TbAbonados;
TDataSource *DsAbonados;
TPageControl *PageControl2;
TTabSheet *TabSheet3;
TLabel *Label6;
TLabel *Label10;
TLabel *Label9;
TLabel *Label8;
TDBEdit *DBEdit3;
TDBEdit *DBEdit4;
TDBEdit *DBEdit5;
TTabSheet *TabSheet4;
TBevel *Bevel2;
TDBGrid *DBGrid2;
TLabel *Label7;
TDBEdit *DBEdit7;
TLabel *Label11;
TDBEdit *DBEdit8;
TDBEdit *DBEdit9;
TLabel *Label12;
TTable *TbVehiculos;
TDataSource *DsVehiculos;
TBitBtn *BitBtn2;
TTable *TbBusqMatriculas;
TLabel *Label13;
TDBLookupComboBox *DBLookupComboBox2;
TTable *TbCards;
TImage *CardOK;
TDBCheckBox *DBCheckBox1;
TTable *TbTAbonados;
TDataSource *DsTAbonados;
TComboBox *ComboBox1;
TTabSheet *TabSheet5;
TComboBox *ComboBox2;
TBitBtn *RenovarAbono;
TTable *TbFacturas;
TDataSource *DsFacturas;
TDBGrid *DBGrid3;
TBitBtn *BitBtn1;
TPanel *Panel3;
TLabel *Label3;
TDBEdit *DBEdit1;
TLabel *Label4;
TDBEdit *DBEdit2;
TDBEdit *DBEdit6;
TDBText *DBText1;
TDBNavigator *DBNavigator1;
TBitBtn *BitBtn3;
void __fastcall TbAbonadosBeforeOpen(TDataSet *DataSet);
void __fastcall TbVehiculosBeforeOpen(TDataSet *DataSet);
void __fastcall DBGrid1DblClick(TObject *Sender);
void __fastcall BuscadorKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift);
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall TbAbonadosBeforeDelete(TDataSet *DataSet);
void __fastcall TbCardsBeforeOpen(TDataSet *DataSet);
void __fastcall DBGrid2DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State);
void __fastcall TbVehiculosBeforeDelete(TDataSet *DataSet);
void __fastcall DBGrid2DblClick(TObject *Sender);
void __fastcall DsAbonadosUpdateData(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall PageControl2Change(TObject *Sender);
void __fastcall PageControl1Change(TObject *Sender);
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall DsAbonadosDataChange(TObject *Sender,
TField *Field);
void __fastcall AvanzaCampo(TObject *Sender, char &Key);
void __fastcall TbAbonadosNewRecord(TDataSet *DataSet);
void __fastcall ComboBox2Change(TObject *Sender);
void __fastcall RenovarAbonoClick(TObject *Sender);
void __fastcall TbFacturasBeforeOpen(TDataSet *DataSet);
void __fastcall DBGrid3DblClick(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn3Click(TObject *Sender);
private: // User declarations
TDateTime __fastcall DiasEnPeriodoDesde( TDateTime fechaE );
Currency __fastcall ImporteDelPeriodo();
Currency ImportesPeriodo[4];
bool isSettingData;
AnsiString cfgPWD;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Binary file not shown.

119
cap_gestion/capg_gfact.cpp Normal file
View File

@ -0,0 +1,119 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#include <inifiles.hpp>
#pragma hdrstop
#include "capg_gfact.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TgFact *gFact;
//---------------------------------------------------------------------------
__fastcall TgFact::TgFact(TComponent* Owner)
: TForm(Owner)
{
TIniFile *ini;
ini = new TIniFile( ExtractFileDir( Application->ExeName ) + "\\CAP.INI" );
// Cargamos los importes del periodo (Mes/biM/triM/Anual)
ImportesPeriodo[0] = ini->ReadFloat( "CAP_g", "ImporteMensual", 0.0 );
ImportesPeriodo[1] = ini->ReadFloat( "CAP_g", "ImporteBimestral", 0.0 );
ImportesPeriodo[2] = ini->ReadFloat( "CAP_g", "ImporteTrimestral", 0.0 );
ImportesPeriodo[3] = ini->ReadFloat( "CAP_g", "ImporteAnual", 0.0 );
delete ini;
TbFacturas->Active = true;
TbAbonados->Active = true;
}
//---------------------------------------------------------------------------
TDateTime __fastcall TgFact::DiasEnPeriodoDesde( TDateTime fechaE )
{
TDateTime NuevaFechaS;
unsigned short YY, MM, DD;
fechaE.DecodeDate( &YY, &MM, &DD );
// Le asignamos un nuevo periodo...
switch( TbAbonados->FieldByName("fperiodo")->AsInteger )
{
case 0: // Mensual
NuevaFechaS = EncodeDate( (MM==12)?(YY+1):YY, (MM==12)?1:(MM+1), 1 );
break;
case 1: // BiMestral
NuevaFechaS = EncodeDate( (MM>=11)?(YY+1):YY, (MM==11)?1:( (MM==12)?2:(MM+2) ), 1 );
break;
case 2: // TriMestral
NuevaFechaS = EncodeDate( (MM>=10)?(YY+1):YY, (MM==10)?1:( (MM==11)?2:( (MM==12)? 3: (MM+3) )), 1 );
break;
case 3: // Anual
NuevaFechaS = EncodeDate( YY+1, MM+1, 1 );
break;
default:
NuevaFechaS = fechaE + 15;
break;
}
return NuevaFechaS;
}
//---------------------------------------------------------------------------
Currency __fastcall TgFact::ImporteDelPeriodo()
{
if ( TbAbonados->FieldByName("fperiodo")->AsInteger >= 0 &&
TbAbonados->FieldByName("fperiodo")->AsInteger <= 3 )
return ImportesPeriodo[ TbAbonados->FieldByName("fperiodo" )->AsInteger ];
return 0;
}//---------------------------------------------------------------------------
void __fastcall TgFact::BitBtn1Click(TObject *Sender)
{
if ( ComboBox1->ItemIndex >=0 && ComboBox2->ItemIndex >= 0 )
{
TDateTime FechaInicioFacturas = EncodeDate( ComboBox2->ItemIndex+2002, ComboBox1->ItemIndex+1, 1 );
ComboBox1->Visible = false;
ComboBox2->Visible = false;
BitBtn1->Visible = false;
ProgressBar1->Position=0;
ProgressBar1->Visible=true;
TbAbonados->Active = true;
ProgressBar1->Max = TbAbonados->RecordCount;
TbAbonados->First();
while ( !TbAbonados->Eof )
{
// Si el estado es -ALTA-
if ( TbAbonados->FieldByName("estado")->AsInteger == 0 )
{
TbFacturas->Filter = "[idc] = '" + TbAbonados->FieldByName("ida")->AsString+"'";
TbFacturas->Filtered = true;
// Si tuviera alguna factura impagada
if ( TbFacturas->Locate( "pagado", false, TLocateOptions() << loCaseInsensitive ) )
{
TbAbonados->Edit();
TbAbonados->FieldByName("estado")->AsInteger = 2; // Baja-Temporal
TbAbonados->Post();
} else {
// Todas las facturas las tiene pagadas...
// Si su ultimo abono NO ESTARA VIGENTE en la fecha seleccionada
if ( TbFacturas->FieldByName("fechaS")->AsDateTime <= FechaInicioFacturas )
{
// Insertamos la nueva factura...
TbFacturas->Insert();
TbFacturas->FieldByName("idc")->AsInteger = TbAbonados->FieldByName("ida")->AsInteger;
TbFacturas->FieldByName("pagado")->AsBoolean = false;
TbFacturas->FieldByName("fechaE")->AsDateTime = FechaInicioFacturas;
TbFacturas->FieldByName("fechaS")->AsDateTime = DiasEnPeriodoDesde( FechaInicioFacturas );
TbFacturas->FieldByName("importe")->AsCurrency = ImporteDelPeriodo();
TbFacturas->Post();
}
TbFacturas->Filtered = false;
}
}
ProgressBar1->Position++;
TbAbonados->Next();
}
Close();
} else {
ShowMessage( "El Mes y/o A<>o seleccionados no son correctos" );
}
}
//---------------------------------------------------------------------------

BIN
cap_gestion/capg_gfact.ddp Normal file

Binary file not shown.

220
cap_gestion/capg_gfact.dfm Normal file
View File

@ -0,0 +1,220 @@
object gFact: TgFact
Left = 157
Top = 143
Width = 640
Height = 349
BorderIcons = [biSystemMenu]
Caption = 'CAP-ges'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000001000800A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000010000000000000000
0000000080000080000000808000800000008000800080800000C0C0C0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000606
0600121212001F1F1F002C2C2C003939390045454500525252005F5F5F006C6C
6C007878780085858500929292009F9F9F00ABABAB00B8B8B800C5C5C500D2D2
D200DEDEDE00EBEBEB00F8F8F800F0FBFF00A4A0A000C0DCC000F0CAA6000000
3E0000005D0000007C0000009B000000BA000000D9000000F0002424FF004848
FF006C6CFF009090FF00B4B4FF0000143E00001E5D0000287C0000329B00003C
BA000046D9000055F000246DFF004885FF006C9DFF0090B5FF00B4CDFF00002A
3E00003F5D0000547C0000699B00007EBA000093D90000AAF00024B6FF0048C2
FF006CCEFF0090DAFF00B4E6FF00003E3E00005D5D00007C7C00009B9B0000BA
BA0000D9D90000F0F00024FFFF0048FFFF006CFFFF0090FFFF00B4FFFF00003E
2A00005D3F00007C5400009B690000BA7E0000D9930000F0AA0024FFB60048FF
C2006CFFCE0090FFDA00B4FFE600003E1400005D1E00007C2800009B320000BA
3C0000D9460000F0550024FF6D0048FF85006CFF9D0090FFB500B4FFCD00003E
0000005D0000007C0000009B000000BA000000D9000000F0000024FF240048FF
48006CFF6C0090FF9000B4FFB400143E00001E5D0000287C0000329B00003CBA
000046D9000055F000006DFF240085FF48009DFF6C00B5FF9000CDFFB4002A3E
00003F5D0000547C0000699B00007EBA000093D90000AAF00000B6FF2400C2FF
4800CEFF6C00DAFF9000E6FFB4003E3E00005D5D00007C7C00009B9B0000BABA
0000D9D90000F0F00000FFFF2400FFFF4800FFFF6C00FFFF9000FFFFB4003E2A
00005D3F00007C5400009B690000BA7E0000D9930000F0AA0000FFB62400FFC2
4800FFCE6C00FFDA9000FFE6B4003E1400005D1E00007C2800009B320000BA3C
0000D9460000F0550000FF6D2400FF854800FF9D6C00FFB59000FFCDB4003E00
00005D0000007C0000009B000000BA000000D9000000F0000000FF242400FF48
4800FF6C6C00FF909000FFB4B4003E0014005D001E007C0028009B003200BA00
3C00D9004600F0005500FF246D00FF488500FF6C9D00FF90B500FFB4CD003E00
2A005D003F007C0054009B006900BA007E00D9009300F000AA00FF24B600FF48
C200FF6CCE00FF90DA00FFB4E6003E003E005D005D007C007C009B009B00BA00
BA00D900D900F000F000FF24FF00FF48FF00FF6CFF00FF90FF00FFB4FF002A00
3E003F005D0054007C0069009B007E00BA009300D900AA00F000B624FF00C248
FF00CE6CFF00DA90FF00E6B4FF0014003E001E005D0028007C0032009B003C00
BA004600D9005500F0006D24FF008548FF009D6CFF00B590FF00CDB4FF000000
0000001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A0000
00001010101010101010101010101010101010101010101010101010101A0000
00001A22222222212121212121212120202020202020201F1F1F1F1F101A001A
1A1A1A2222222222212121212121212121201010101010101010101F101A1010
10101A230404220404040404042121101010B5B5B6B6B6B6C3B7101F101A1A22
21211A232322222222222222222121102121A3A4B4B4B4C1B5B51020101A1A22
21211A230404040404040404222222102221AFAFAFB0B0A3A3A41020101A1A22
04041A23232323232323232323232310222222212121212121202020101A1A23
22211A23040404232323232323232310232310101010101010101020101A1A23
22221A23232323232323230F0F0F0F101010B5B5B6B6B6B6C3B71021101A1A23
04041A2323230F0F0F0F0F0F0F0F0F100F0FA3A4B4B4B4C1B5B51021101A1A23
23221A231010101010101010100F0F100F0FAFAFAFB0B0A3A3A41021101A1A23
23231A0FB5B5B6B6B6B6C3B7101010100F0F0F232323232222222221101A1A23
04041A0FA3A4B4B4B4C1B5B5100F0F100F0F10101010101010101022101A1A23
23231A0FAFAFAFB0B0A3A3A4100F0F101010B5B5B6B6B6B6C3B71022101A1A23
230F1A0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FA3A4B4B4B4C1B5B51023101A1A23
04041A0F0F0F0F0F0F0F0F0F0F0F0F0F0F0FAFAFAFB0B0A3A3A41023101A1A23
0F0F1A0F040404040F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F101A1A23
0F0F1A0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F101A1A0F
04041A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A001A0F
0F0F0F0F23221A22220C0C0C0C0C0C0C0C0C0C0C0C041F1F101A000000001A0F
0F0F0F0F23221A222222222121212121212120202020041F101A000000001A0F
0404040404041A2322020202020202020202020202022020101A000000001A0F
0F0F0F0F23231A23230A0A0A0A0A0A0A0A0A0A0A0A020420101A000000001A0F
0F0F0F0F0F231A2323232323232323232322222121212121101A000000001A0F
0404040404041A2323D2D2D2D2D2D2D20F23232222210421101A000000001A0F
0F0F0F0F0F0F1A230FD6D6D6D6D6D6D20F0F232322222221101A000000001A0F
0F0F0F0F0F0F1A0F0F0F0F0F0F0F0F0F0F0F232323230422101A000000001A1A
1A1A1A1A1A1A1A0F0F010101010101010101010123232323101A000000000000
0000000000001A0F0F09090909090909090909010F0F040F101A000000000000
0000000000001A0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F101A000000000000
0000000000001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A0000000000F800
0000F0000000F000000080000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000010000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000FFF00000FFF00000FFF00001F}
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 20
object ProgressBar1: TProgressBar
Left = 8
Top = 272
Width = 617
Height = 41
Min = 0
Max = 100
TabOrder = 3
Visible = False
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 632
Height = 49
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label4: TLabel
Left = 8
Top = 8
Width = 293
Height = 33
Caption = 'Emisi<73>n de Facturas...'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'Arial Black'
Font.Style = []
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 577
Height = 9
Shape = bsBottomLine
end
end
object Memo1: TMemo
Left = 0
Top = 49
Width = 632
Height = 160
Align = alTop
Color = clScrollBar
Lines.Strings = (
'Tras seleccionar el mes para el cual quiere realizar la emisi<73>n ' +
'de facturas, estas se '
'emitir<69>n siguiendo el siguiente criterio:'
''
'>> Solo se emitir<69>n facturas, a los clientes cuya <20>ltima factura' +
' este abonada'
'>> >> Aquellos clientes cuya <20>ltima factura este impagada, pasar' +
'<27>n a "baja-temporal"'
'>> El periodo de validez del <20>ltimo abono, no este vigente dentr' +
'o del mes seleccionado'
'>> La emisi<73>n se realizar<61> con un periodo igual al seleccionado ' +
'actualmente en su ficha')
ReadOnly = True
TabOrder = 1
end
object BitBtn1: TBitBtn
Left = 192
Top = 272
Width = 233
Height = 41
Caption = '&Comenzar emisi<73>n de facturas'
TabOrder = 2
OnClick = BitBtn1Click
end
object ComboBox1: TComboBox
Left = 192
Top = 232
Width = 145
Height = 28
ItemHeight = 20
TabOrder = 4
Items.Strings = (
'Enero'
'Febrero'
'Marzo'
'Abril'
'Mayo'
'Junio'
'Julio'
'Agosto'
'Septiembre'
'Octubre'
'Noviembre'
'Diciembre')
end
object ComboBox2: TComboBox
Left = 336
Top = 232
Width = 89
Height = 28
ItemHeight = 20
TabOrder = 5
Items.Strings = (
'2002'
'2003'
'2004'
'2005'
'2006'
'2007'
'2008'
'2009'
'2010')
end
object TbAbonados: TTable
TableName = 'datos\abonados.db'
Left = 300
Top = 76
end
object DsAbonados: TDataSource
DataSet = TbAbonados
Left = 300
Top = 44
end
object TbFacturas: TTable
IndexName = 'iExpira'
TableName = 'datos\TbFacturas.db'
Left = 540
Top = 76
end
end

42
cap_gestion/capg_gfact.h Normal file
View File

@ -0,0 +1,42 @@
//---------------------------------------------------------------------------
#ifndef capg_gfactH
#define capg_gfactH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TgFact : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TLabel *Label4;
TBevel *Bevel1;
TMemo *Memo1;
TBitBtn *BitBtn1;
TProgressBar *ProgressBar1;
TComboBox *ComboBox1;
TComboBox *ComboBox2;
TTable *TbAbonados;
TDataSource *DsAbonados;
TTable *TbFacturas;
void __fastcall BitBtn1Click(TObject *Sender);
private: // User declarations
Currency ImportesPeriodo[4];
TDateTime __fastcall TgFact::DiasEnPeriodoDesde( TDateTime fechaE );
Currency __fastcall TgFact::ImporteDelPeriodo();
public: // User declarations
__fastcall TgFact(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TgFact *gFact;
//---------------------------------------------------------------------------
#endif

View File

@ -0,0 +1,42 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "capg_ifact.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TiFact *iFact;
//---------------------------------------------------------------------------
__fastcall TiFact::TiFact(TComponent* Owner)
: TForm(Owner)
{
TbPendientes->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TiFact::BitBtn1Click(TObject *Sender)
{
Currency TotalA, TotalNA;
TbFacturas->Active = true;
TbFacturas->Filter = "[fechaP] >= '" + fdesde->Date.FormatString("dd/mm/yyyy") + "' AND [fechaP] <= '" + fhasta->Date.FormatString("dd/mm/yyyy") +"'";
TbFacturas->Filtered = true;
TotalA = 0; TotalNA = 0;
TbFacturas->First();
while( !TbFacturas->Eof )
{
if ( TbFacturas->FieldByName("idc")->AsInteger == -1 )
{
TotalNA += TbFacturas->FieldByName("importe")->AsCurrency;
} else {
TotalA += TbFacturas->FieldByName("importe")->AsCurrency;
}
TbFacturas->Next();
}
TbFacturas->Active = false;
lTotalA->Caption = TotalA;
lTotalNA->Caption = TotalNA;
}
//---------------------------------------------------------------------------

BIN
cap_gestion/capg_ifact.ddp Normal file

Binary file not shown.

284
cap_gestion/capg_ifact.dfm Normal file
View File

@ -0,0 +1,284 @@
object iFact: TiFact
Left = 262
Top = 130
Width = 696
Height = 480
Caption = 'CAP-ges'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 20
object Panel1: TPanel
Left = 0
Top = 0
Width = 688
Height = 81
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label1: TLabel
Left = 0
Top = -4
Width = 382
Height = 45
Caption = 'Informaci'#243'n facturas'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -32
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 577
Height = 9
Shape = bsBottomLine
end
object CardOK: TImage
Left = 488
Top = 0
Width = 24
Height = 24
AutoSize = True
Picture.Data = {
07544269746D617096010000424D960100000000000076000000280000001800
0000180000000100040000000000200100000000000000000000100000000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFF
991100000FFFFFFF00000000099110880FFF0000888888888001108800FF8888
888888888880088808FF88888888888888888888080F88888888888888888888
080B88888888888888888888080B888888888000000000008801888800000777
7777777808010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFF
FF777000000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BB
BBBB777700BB1111BBBBBBBBBBBB0000FFBBBBBBBBBBB33BBBBBFFFFFFB33BBB
3BBBB33BBB3BFFFFFFBB3BB33B3BBBBBBBBBFFFFFFB33BBBBBB3BBBBBBBBFFFF
FFB33BBBBBBBBBBBFFFFFFFFFFBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
Visible = False
end
object Label2: TLabel
Left = 8
Top = 56
Width = 58
Height = 20
Caption = 'Periodo:'
end
object fdesde: TDateTimePicker
Left = 72
Top = 48
Width = 89
Height = 28
CalAlignment = dtaLeft
Date = 37301
Time = 37301
DateFormat = dfShort
DateMode = dmComboBox
Kind = dtkDate
ParseInput = False
TabOrder = 0
end
object fhasta: TDateTimePicker
Left = 168
Top = 48
Width = 89
Height = 28
CalAlignment = dtaLeft
Date = 37301
Time = 37301
DateFormat = dfShort
DateMode = dmComboBox
Kind = dtkDate
ParseInput = False
TabOrder = 1
end
object BitBtn1: TBitBtn
Left = 264
Top = 48
Width = 75
Height = 25
Caption = 'Calcular'
TabOrder = 2
OnClick = BitBtn1Click
end
end
object PageControl1: TPageControl
Left = 0
Top = 81
Width = 688
Height = 368
ActivePage = TabSheet2
Align = alClient
MultiLine = True
Style = tsFlatButtons
TabIndex = 1
TabOrder = 1
object TabSheet1: TTabSheet
Caption = 'General'
object Label3: TLabel
Left = 16
Top = 40
Width = 192
Height = 20
Caption = 'Facturaci'#243'n por Abonados:'
end
object Label4: TLabel
Left = 16
Top = 64
Width = 206
Height = 20
Caption = 'Facturaci'#243'n por Ocacionales:'
end
object lTotalA: TLabel
Left = 240
Top = 40
Width = 91
Height = 20
Caption = 'Calculando...'
end
object lTotalNA: TLabel
Left = 240
Top = 64
Width = 91
Height = 20
Caption = 'Calculando...'
end
end
object TabSheet2: TTabSheet
Caption = 'Impagados'
ImageIndex = 1
object DBGrid1: TDBGrid
Left = 0
Top = 0
Width = 680
Height = 330
Align = alClient
DataSource = DsPendientes
Options = [dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit]
ReadOnly = True
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -16
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'id'
Title.Alignment = taCenter
Width = 52
Visible = True
end
item
Expanded = False
FieldName = 'fechaE'
Title.Caption = 'Desde...'
Width = 70
Visible = True
end
item
Expanded = False
FieldName = 'fechaS'
Title.Alignment = taRightJustify
Title.Caption = '...Hasta'
Width = 70
Visible = True
end
item
Expanded = False
FieldName = 'importe'
Title.Alignment = taCenter
Width = 80
Visible = True
end
item
Expanded = False
FieldName = 'NombreC'
Title.Caption = 'Nombre'
Width = 121
Visible = True
end
item
Expanded = False
FieldName = 'ApellidoC'
Title.Caption = 'Apellidos'
Visible = True
end>
end
end
end
object TbFacturas: TTable
TableName = 'datos\TbFacturas.db'
Left = 372
Top = 131
end
object TbPendientes: TTable
Filter = '[pagado]=false'
Filtered = True
TableName = 'datos\TbFacturas.db'
Left = 436
Top = 131
object TbPendientesid: TAutoIncField
FieldName = 'id'
ReadOnly = True
end
object TbPendientesidc: TIntegerField
FieldName = 'idc'
end
object TbPendientesimporte: TCurrencyField
FieldName = 'importe'
end
object TbPendientesfechaE: TDateField
FieldName = 'fechaE'
end
object TbPendientesfechaS: TDateField
FieldName = 'fechaS'
end
object TbPendienteshoraE: TTimeField
FieldName = 'horaE'
end
object TbPendienteshoraS: TTimeField
FieldName = 'horaS'
end
object TbPendientespagado: TBooleanField
FieldName = 'pagado'
end
object TbPendientesNombreC: TStringField
FieldKind = fkLookup
FieldName = 'NombreC'
LookupDataSet = TbAbonados
LookupKeyFields = 'ida'
LookupResultField = 'nombre'
KeyFields = 'idc'
Lookup = True
end
object TbPendientesApellidoC: TStringField
FieldKind = fkLookup
FieldName = 'ApellidoC'
LookupDataSet = TbAbonados
LookupKeyFields = 'ida'
LookupResultField = 'apellidos'
KeyFields = 'idc'
Lookup = True
end
end
object DsPendientes: TDataSource
DataSet = TbPendientes
Left = 432
Top = 96
end
object TbAbonados: TTable
TableName = 'datos\abonados.db'
Left = 468
Top = 131
end
end

61
cap_gestion/capg_ifact.h Normal file
View File

@ -0,0 +1,61 @@
//---------------------------------------------------------------------------
#ifndef capg_ifactH
#define capg_ifactH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DBGrids.hpp>
#include <Grids.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TiFact : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TImage *CardOK;
TPageControl *PageControl1;
TDateTimePicker *fdesde;
TDateTimePicker *fhasta;
TLabel *Label2;
TTabSheet *TabSheet1;
TTabSheet *TabSheet2;
TLabel *Label3;
TLabel *Label4;
TBitBtn *BitBtn1;
TTable *TbFacturas;
TLabel *lTotalA;
TLabel *lTotalNA;
TTable *TbPendientes;
TDBGrid *DBGrid1;
TDataSource *DsPendientes;
TAutoIncField *TbPendientesid;
TIntegerField *TbPendientesidc;
TCurrencyField *TbPendientesimporte;
TDateField *TbPendientesfechaE;
TDateField *TbPendientesfechaS;
TTimeField *TbPendienteshoraE;
TTimeField *TbPendienteshoraS;
TBooleanField *TbPendientespagado;
TTable *TbAbonados;
TStringField *TbPendientesNombreC;
TStringField *TbPendientesApellidoC;
void __fastcall BitBtn1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TiFact(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TiFact *iFact;
//---------------------------------------------------------------------------
#endif

128
cap_gestion/capg_menu.cpp Normal file
View File

@ -0,0 +1,128 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "capg_menu.h"
#include "capg_abonados.h"
#include "capg_tabonados.h"
#include "capg_tarifas.h"
#include "tickets.h"
#include "crd_ctrl.h"
#include "capg_gfact.h"
#include "capg_ifact.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
Height = 290;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn2Click(TObject *Sender)
{
TForm1 *GAb;
GAb = new TForm1(this);
this->Visible = false;
GAb->ShowModal();
this->Visible = true;
delete GAb;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn1Click(TObject *Sender)
{
TForm2 *GTAb;
GTAb = new TForm2(this);
this->Visible = false;
GTAb->ShowModal();
this->Visible = true;
delete GTAb;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn5Click(TObject *Sender)
{
if ( Height == 290 )
Height = 390;
else
Height = 290;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn6Click(TObject *Sender)
{
TfTarifas *F;
F = new TfTarifas(this);
this->Visible = false;
F->ShowModal();
this->Visible = true;
delete F;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn8Click(TObject *Sender)
{
/*
TfEstados *F;
F = new TfEstados(this);
this->Visible = false;
F->ShowModal();
this->Visible = true;
delete F;
*/
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn7Click(TObject *Sender)
{
TfTickets *F;
F = new TfTickets(this);
this->Visible = false;
F->ShowModal();
this->Visible = true;
delete F;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn3Click(TObject *Sender)
{
TiFact *F;
F = new TiFact(this);
this->Visible = false;
F->ShowModal();
this->Visible = true;
delete F;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn9Click(TObject *Sender)
{
TgFact *F;
F = new TgFact(this);
this->Visible = false;
F->ShowModal();
this->Visible = true;
delete F;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn4Click(TObject *Sender)
{
ShowMessage( "M<EFBFBD>dulo no incluido en esta versi<73>n" );
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::BitBtn10Click(TObject *Sender)
{
if ( MessageDlg("Reiniciar a cero el contador.\nEsto incrementar<61> la serie del ticket y pondra a cero el contador.\n\n<EFBFBD>Continuar con el proceso?",mtInformation, TMsgDlgButtons() << mbYes << mbNo, 0)==mrYes )
{
TQuery *sql;
sql = new TQuery(this);
sql->SQL->Clear();
sql->SQL->Add("UPDATE 'datos\\contadores.db' SET Prefijo=Prefijo+1,Contador=0 WHERE Id=1");
sql->ExecSQL();
delete sql;
}
}
//---------------------------------------------------------------------------

BIN
cap_gestion/capg_menu.ddp Normal file

Binary file not shown.

1187
cap_gestion/capg_menu.dfm Normal file

File diff suppressed because it is too large Load Diff

52
cap_gestion/capg_menu.h Normal file
View File

@ -0,0 +1,52 @@
//---------------------------------------------------------------------------
#ifndef capg_menuH
#define capg_menuH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Buttons.hpp>
//---------------------------------------------------------------------------
class TMainForm : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label4;
TLabel *Label5;
TLabel *Label6;
TBitBtn *BitBtn2;
TBitBtn *BitBtn3;
TBitBtn *BitBtn4;
TBitBtn *BitBtn5;
TPanel *Panel2;
TBitBtn *BitBtn1;
TBitBtn *BitBtn6;
TBitBtn *BitBtn7;
TBitBtn *BitBtn8;
TBitBtn *BitBtn9;
TBitBtn *BitBtn10;
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn5Click(TObject *Sender);
void __fastcall BitBtn6Click(TObject *Sender);
void __fastcall BitBtn8Click(TObject *Sender);
void __fastcall BitBtn7Click(TObject *Sender);
void __fastcall BitBtn3Click(TObject *Sender);
void __fastcall BitBtn9Click(TObject *Sender);
void __fastcall BitBtn4Click(TObject *Sender);
void __fastcall BitBtn10Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TMainForm(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TMainForm *MainForm;
//---------------------------------------------------------------------------
#endif

View File

@ -0,0 +1,16 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "capg_qrLabonados.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TqrLAbonados *qrLAbonados;
//---------------------------------------------------------------------------
__fastcall TqrLAbonados::TqrLAbonados(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

View File

@ -0,0 +1,561 @@
object qrLAbonados: TqrLAbonados
Left = 190
Top = 133
Width = 803
Height = 636
Caption = 'qrLAbonados'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Scaled = False
PixelsPerInch = 96
TextHeight = 13
object QuickRep1: TQuickRep
Left = 0
Top = 0
Width = 794
Height = 1123
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
DataSet = TbAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = []
Functions.Strings = (
'PAGENUMBER'
'COLUMNNUMBER'
'REPORTTITLE')
Functions.DATA = (
'0'
'0'
#39#39)
Options = [FirstPageHeader, LastPageFooter]
Page.Columns = 1
Page.Orientation = poPortrait
Page.PaperSize = A4
Page.Values = (
100
2970
100
2100
100
100
0)
PrinterSettings.Copies = 1
PrinterSettings.Duplex = False
PrinterSettings.FirstPage = 0
PrinterSettings.LastPage = 0
PrinterSettings.OutputBin = Auto
PrintIfEmpty = True
SnapToGrid = True
Units = MM
Zoom = 100
object QRBand1: TQRBand
Left = 38
Top = 38
Width = 718
Height = 40
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
AlignToBottom = False
Color = clWhite
ForceNewColumn = False
ForceNewPage = False
Size.Values = (
105.833333333333
1899.70833333333)
BandType = rbTitle
object QRLabel1: TQRLabel
Left = 208
Top = 0
Width = 294
Height = 37
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
97.8958333333333
550.333333333333
0
777.875)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Caption = 'Listado de Abonados'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -32
Font.Name = 'Arial'
Font.Style = []
ParentFont = False
Transparent = False
WordWrap = True
FontSize = 24
end
end
object QRBand2: TQRBand
Left = 38
Top = 118
Width = 718
Height = 27
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
AlignToBottom = False
Color = clWhite
ForceNewColumn = False
ForceNewPage = False
Size.Values = (
71.4375
1899.70833333333)
BandType = rbDetail
object QRExpr1: TQRExpr
Left = 8
Top = 8
Width = 94
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
21.1666666666667
21.1666666666667
248.708333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Color = clWhite
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbAbonados.ida'
FontSize = 10
end
object QRExpr2: TQRExpr
Left = 56
Top = 8
Width = 94
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
148.166666666667
21.1666666666667
248.708333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Color = clWhite
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbAbonados.dni'
FontSize = 10
end
object QRExpr3: TQRExpr
Left = 152
Top = 8
Width = 287
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
402.166666666667
21.1666666666667
759.354166666667)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Color = clWhite
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbAbonados.nombre + '#39' '#39' + TbAbonados.apellidos'
FontSize = 10
end
object QRExpr4: TQRExpr
Left = 416
Top = 8
Width = 301
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
1100.66666666667
21.1666666666667
796.395833333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Color = clWhite
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbAbonados.telefono1 + '#39' '#39' + TbAbonados.telefono2'
FontSize = 10
end
end
object QRSubDetail1: TQRSubDetail
Left = 38
Top = 145
Width = 718
Height = 24
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
AlignToBottom = False
Color = clWhite
ForceNewColumn = False
ForceNewPage = False
LinkBand = QRBand2
Size.Values = (
63.5
1899.70833333333)
Master = QuickRep1
DataSet = TbVehiculos
PrintBefore = False
PrintIfEmpty = True
object QRExpr5: TQRExpr
Left = 64
Top = 0
Width = 115
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
169.333333333333
0
304.270833333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = [fsItalic]
Color = clWhite
ParentFont = False
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbVehiculos.idCard'
FontSize = 10
end
object QRExpr6: TQRExpr
Left = 152
Top = 0
Width = 131
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
402.166666666667
0
346.604166666667)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = [fsItalic]
Color = clWhite
ParentFont = False
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbVehiculos.matricula'
FontSize = 10
end
object QRExpr7: TQRExpr
Left = 288
Top = 0
Width = 106
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
762
0
280.458333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = [fsItalic]
Color = clWhite
ParentFont = False
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbVehiculos.color'
FontSize = 10
end
object QRExpr8: TQRExpr
Left = 392
Top = 0
Width = 120
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
1037.16666666667
0
317.5)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = [fsItalic]
Color = clWhite
ParentFont = False
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbVehiculos.modelo'
FontSize = 10
end
object QRExpr9: TQRExpr
Left = 600
Top = 0
Width = 119
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
1587.5
0
314.854166666667)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'Arial'
Font.Style = [fsItalic]
Color = clWhite
ParentFont = False
ResetAfterPrint = False
Transparent = False
WordWrap = True
Expression = 'TbVehiculos.idplaza'
FontSize = 10
end
end
object QRBand3: TQRBand
Left = 38
Top = 78
Width = 718
Height = 40
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = True
Frame.DrawLeft = False
Frame.DrawRight = False
AlignToBottom = False
Color = clWhite
ForceNewColumn = False
ForceNewPage = False
Size.Values = (
105.833333333333
1899.70833333333)
BandType = rbColumnHeader
object QRLabel2: TQRLabel
Left = 8
Top = 16
Width = 13
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
21.1666666666667
42.3333333333333
34.3958333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Caption = 'ID'
Color = clWhite
Transparent = False
WordWrap = True
FontSize = 10
end
object QRLabel3: TQRLabel
Left = 64
Top = 16
Width = 22
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
169.333333333333
42.3333333333333
58.2083333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Caption = 'DNI'
Color = clWhite
Transparent = False
WordWrap = True
FontSize = 10
end
object QRLabel4: TQRLabel
Left = 152
Top = 16
Width = 112
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
402.166666666667
42.3333333333333
296.333333333333)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Caption = 'Nombre y apellidos'
Color = clWhite
Transparent = False
WordWrap = True
FontSize = 10
end
object QRLabel5: TQRLabel
Left = 416
Top = 16
Width = 56
Height = 17
Frame.Color = clBlack
Frame.DrawTop = False
Frame.DrawBottom = False
Frame.DrawLeft = False
Frame.DrawRight = False
Size.Values = (
44.9791666666667
1100.66666666667
42.3333333333333
148.166666666667)
Alignment = taLeftJustify
AlignToBand = False
AutoSize = True
AutoStretch = False
Caption = 'Telefonos'
Color = clWhite
Transparent = False
WordWrap = True
FontSize = 10
end
end
end
object DsAbonados: TDataSource
DataSet = TbAbonados
Left = 116
Top = 284
end
object DsVehiculos: TDataSource
DataSet = TbVehiculos
Left = 152
Top = 288
end
object TbVehiculos: TTable
IndexName = 'iAbonados'
MasterFields = 'ida'
MasterSource = DsAbonados
TableName = 'datos\vehiculos.db'
Left = 152
Top = 314
end
object TbAbonados: TTable
TableName = 'datos\abonados.db'
Left = 116
Top = 316
end
end

View File

@ -0,0 +1,51 @@
//---------------------------------------------------------------------------
#ifndef capg_qrLabonadosH
#define capg_qrLabonadosH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <DB.hpp>
#include <DBTables.hpp>
#include <ExtCtrls.hpp>
#include <QRCtrls.hpp>
#include <QuickRpt.hpp>
#include <Db.hpp>
#include <Qrctrls.hpp>
//---------------------------------------------------------------------------
class TqrLAbonados : public TForm
{
__published: // IDE-managed Components
TQuickRep *QuickRep1;
TQRBand *QRBand1;
TQRBand *QRBand2;
TQRSubDetail *QRSubDetail1;
TDataSource *DsAbonados;
TDataSource *DsVehiculos;
TTable *TbVehiculos;
TTable *TbAbonados;
TQRLabel *QRLabel1;
TQRBand *QRBand3;
TQRLabel *QRLabel2;
TQRLabel *QRLabel3;
TQRLabel *QRLabel4;
TQRLabel *QRLabel5;
TQRExpr *QRExpr1;
TQRExpr *QRExpr2;
TQRExpr *QRExpr3;
TQRExpr *QRExpr4;
TQRExpr *QRExpr5;
TQRExpr *QRExpr6;
TQRExpr *QRExpr7;
TQRExpr *QRExpr8;
TQRExpr *QRExpr9;
private: // User declarations
public: // User declarations
__fastcall TqrLAbonados(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TqrLAbonados *qrLAbonados;
//---------------------------------------------------------------------------
#endif

View File

@ -0,0 +1,48 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "capg_tabonados.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
TbTAbonados->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::TbTAbonadosBeforeOpen(TDataSet *DataSet)
{
if ( !FileExists( TbTAbonados -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbTAbonados -> FieldDefs -> Clear();
/********************\
|* Datos B<>sicos *|
\********************/
TbTAbonados -> FieldDefs -> Add("idta", ftAutoInc, 0, false );
TbTAbonados -> FieldDefs -> Add("desc", ftString, 15, false );
TbTAbonados -> FieldDefs -> Add("cuota", ftCurrency, 0, false );
TbTAbonados -> FieldDefs -> Add("acceso", ftBoolean, 0, false );
TbTAbonados -> FieldDefs -> Add("faccesoAM", ftInteger, 0, false );
TbTAbonados -> FieldDefs -> Add("faccesoPM", ftInteger, 0, false );
TbTAbonados -> FieldDefs -> Add("msg", ftString, 32, false );
TbTAbonados -> IndexDefs-> Clear();
TbTAbonados->IndexDefs->Add("Primary", "idta", TIndexOptions() << ixPrimary << ixUnique);
// Creamos la base...
TbTAbonados -> CreateTable();
}
}
//---------------------------------------------------------------------------

Binary file not shown.

View File

@ -0,0 +1,235 @@
object Form2: TForm2
Left = 278
Top = 213
AutoScroll = False
BorderIcons = [biSystemMenu]
Caption = 'CAP-ges'
ClientHeight = 453
ClientWidth = 632
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000001000800A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000010000000000000000
0000000080000080000000808000800000008000800080800000C0C0C0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000606
0600121212001F1F1F002C2C2C003939390045454500525252005F5F5F006C6C
6C007878780085858500929292009F9F9F00ABABAB00B8B8B800C5C5C500D2D2
D200DEDEDE00EBEBEB00F8F8F800F0FBFF00A4A0A000C0DCC000F0CAA6000000
3E0000005D0000007C0000009B000000BA000000D9000000F0002424FF004848
FF006C6CFF009090FF00B4B4FF0000143E00001E5D0000287C0000329B00003C
BA000046D9000055F000246DFF004885FF006C9DFF0090B5FF00B4CDFF00002A
3E00003F5D0000547C0000699B00007EBA000093D90000AAF00024B6FF0048C2
FF006CCEFF0090DAFF00B4E6FF00003E3E00005D5D00007C7C00009B9B0000BA
BA0000D9D90000F0F00024FFFF0048FFFF006CFFFF0090FFFF00B4FFFF00003E
2A00005D3F00007C5400009B690000BA7E0000D9930000F0AA0024FFB60048FF
C2006CFFCE0090FFDA00B4FFE600003E1400005D1E00007C2800009B320000BA
3C0000D9460000F0550024FF6D0048FF85006CFF9D0090FFB500B4FFCD00003E
0000005D0000007C0000009B000000BA000000D9000000F0000024FF240048FF
48006CFF6C0090FF9000B4FFB400143E00001E5D0000287C0000329B00003CBA
000046D9000055F000006DFF240085FF48009DFF6C00B5FF9000CDFFB4002A3E
00003F5D0000547C0000699B00007EBA000093D90000AAF00000B6FF2400C2FF
4800CEFF6C00DAFF9000E6FFB4003E3E00005D5D00007C7C00009B9B0000BABA
0000D9D90000F0F00000FFFF2400FFFF4800FFFF6C00FFFF9000FFFFB4003E2A
00005D3F00007C5400009B690000BA7E0000D9930000F0AA0000FFB62400FFC2
4800FFCE6C00FFDA9000FFE6B4003E1400005D1E00007C2800009B320000BA3C
0000D9460000F0550000FF6D2400FF854800FF9D6C00FFB59000FFCDB4003E00
00005D0000007C0000009B000000BA000000D9000000F0000000FF242400FF48
4800FF6C6C00FF909000FFB4B4003E0014005D001E007C0028009B003200BA00
3C00D9004600F0005500FF246D00FF488500FF6C9D00FF90B500FFB4CD003E00
2A005D003F007C0054009B006900BA007E00D9009300F000AA00FF24B600FF48
C200FF6CCE00FF90DA00FFB4E6003E003E005D005D007C007C009B009B00BA00
BA00D900D900F000F000FF24FF00FF48FF00FF6CFF00FF90FF00FFB4FF002A00
3E003F005D0054007C0069009B007E00BA009300D900AA00F000B624FF00C248
FF00CE6CFF00DA90FF00E6B4FF0014003E001E005D0028007C0032009B003C00
BA004600D9005500F0006D24FF008548FF009D6CFF00B590FF00CDB4FF000000
1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A0000000000000000000000
1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A0000000000000000001010
101010101010101010101010101010101010101A1A0000000000000000001022
222121212121212020202020201F1F1F1F1F101A1A0000000000000000001022
22212121212121212020202020201F1F1F1F101A1A0000000000000000001022
1010101010212121212020202020201F1F1F101A1A0000000000000000001022
100F0F0F1021101010101010101020201F1F101A1A0000000000000000001022
100F0F0F102121212121212120202020201F101A1A0000000000000000001022
100F0F0F1021101021101010101020202020101A1A0000000000000000001022
101010101022222121212121212120202020101A1A0000000000000000001022
222222222222222222212121212120202020101A1A0000000000000000001022
222222222222222222222121212121202020101A1A0000000000000000001022
222222222222222222222221212121212020101A1A0000000000000000001022
100901101022222222222222212121212120101A1A0000000000000000001022
100909011022222224222222222121212121101A1A0000000000000000001022
1009010901241010101010101A1A1A1A1A1A101A1A1A1A1A1A1A1A1A1A001022
1009010F090124242410104A10101A1A1A1A101A1A1A1A1A1A1A1A1A1A1A1022
101010101009012424104B4A4A10101A1A1A101A1A1A1A1A1A1A1A1A1A001022
22242424242409012424104B104747102221101A1A0000000000000000001024
242424242424240924241010491047471022101A1A0000000000000000001024
242424242424242424242410494910474710101A1A0000000000000000001024
100901101024242424242424104949104747101A000000000000000000001024
1009090110241010241010101010494910474710000000000000000000001024
1009010901242424242424242422104949104747100000000000000000001024
1009010F090110101010101010101010494910101A1000000000000000001024
101010101009012424242410211F1F251049101F250210000000000000001024
2424242424240901242424102221211E10101F1F02251A100000000000001024
24242424242424092424241022242410000010021F2510FE1000000000001024
24242424242424242424241024241000000000101F10FEFE1000000000001024
2424242424242424242424102410000000000000102222FE1000000000001010
1010101010101010101010101000000000000000001010100000000000000000
000000000000000000000000000000000000000000000000000000000000C000
01FFC00001FF000001FF000001FF000001FF000001FF000001FF000001FF0000
01FF000001FF000001FF000001FF000001FF000001FF000001FF000000010000
000000000001000001FF000001FF000001FF000003FF000003FF000001FF0000
00FF0000007F0000003F0000301F0000781F0000FC1F0001FE3FFFFFFFFF}
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 20
object Bevel3: TBevel
Left = 320
Top = 50
Width = 312
Height = 167
end
object StatusBar1: TStatusBar
Left = 0
Top = 434
Width = 632
Height = 19
Panels = <>
SimplePanel = False
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 632
Height = 49
Align = alTop
BevelOuter = bvNone
TabOrder = 1
object Label1: TLabel
Left = 0
Top = 4
Width = 267
Height = 33
Caption = 'Tipos de Abonados'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 577
Height = 9
Shape = bsBottomLine
end
end
object DBCtrlGrid1: TDBCtrlGrid
Left = 0
Top = 49
Width = 320
Height = 385
Align = alLeft
ColCount = 1
DataSource = DsTAbonados
PanelHeight = 96
PanelWidth = 303
TabOrder = 2
RowCount = 4
object Label2: TLabel
Left = 8
Top = 8
Width = 87
Height = 20
Caption = 'Descripci'#243'n:'
end
object Label3: TLabel
Left = 8
Top = 36
Width = 47
Height = 20
Caption = 'Cuota:'
end
object Label4: TLabel
Left = 8
Top = 68
Width = 64
Height = 20
Caption = 'Mensaje:'
end
object DBCheckBox1: TDBCheckBox
Left = 168
Top = 38
Width = 129
Height = 17
Caption = 'permitir acceso'
DataField = 'acceso'
DataSource = DsTAbonados
TabOrder = 0
ValueChecked = 'True'
ValueUnchecked = 'False'
end
object DBEdit1: TDBEdit
Left = 104
Top = 4
Width = 193
Height = 24
DataField = 'desc'
DataSource = DsTAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 1
end
object DBEdit2: TDBEdit
Left = 64
Top = 32
Width = 81
Height = 24
DataField = 'cuota'
DataSource = DsTAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 2
end
object DBEdit3: TDBEdit
Left = 79
Top = 62
Width = 218
Height = 24
DataField = 'msg'
DataSource = DsTAbonados
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 3
end
end
object DsTAbonados: TDataSource
DataSet = TbTAbonados
Left = 176
Top = 160
end
object TbTAbonados: TTable
BeforeOpen = TbTAbonadosBeforeOpen
TableName = 'datos\tabonados.db'
Left = 176
Top = 192
end
end

View File

@ -0,0 +1,46 @@
//---------------------------------------------------------------------------
#ifndef capg_tabonadosH
#define capg_tabonadosH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DBCGrids.hpp>
#include <DBCtrls.hpp>
#include <Mask.hpp>
#include <DB.hpp>
#include <dbcgrids.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published: // IDE-managed Components
TStatusBar *StatusBar1;
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TDataSource *DsTAbonados;
TTable *TbTAbonados;
TDBCtrlGrid *DBCtrlGrid1;
TLabel *Label2;
TLabel *Label3;
TDBCheckBox *DBCheckBox1;
TDBEdit *DBEdit1;
TDBEdit *DBEdit2;
TLabel *Label4;
TDBEdit *DBEdit3;
TBevel *Bevel3;
void __fastcall TbTAbonadosBeforeOpen(TDataSet *DataSet);
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif

View File

@ -0,0 +1,38 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "capg_tarifas.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfTarifas *fTarifas;
//---------------------------------------------------------------------------
__fastcall TfTarifas::TfTarifas(TComponent* Owner)
: TForm(Owner)
{
TbPrecios->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TfTarifas::TbPreciosBeforeOpen(TDataSet *DataSet)
{
// Si la tabla no existe, la creamos
if ( !FileExists(TbPrecios -> TableName ) )
{
// Usamos la propiedad FielDefs para definir
// las columnas que contendr<64> la tabla
TbPrecios -> FieldDefs -> Clear();
TbPrecios -> FieldDefs -> Add("Tiempo", ftInteger, 0, false );
TbPrecios -> FieldDefs -> Add("Precio", ftCurrency, 0, false );
TbPrecios -> IndexDefs -> Clear();
TbPrecios -> IndexDefs -> Add("Primary", "Tiempo", TIndexOptions() << ixPrimary << ixUnique );
// Creamos la base...
TbPrecios -> CreateTable();
}
}
//---------------------------------------------------------------------------

Binary file not shown.

View File

@ -0,0 +1,109 @@
object fTarifas: TfTarifas
Left = 195
Top = 115
Width = 431
Height = 348
Caption = 'fTarifas'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -19
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 24
object Panel1: TPanel
Left = 0
Top = 0
Width = 423
Height = 41
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label1: TLabel
Left = 0
Top = -4
Width = 356
Height = 33
Caption = 'Tarificaci'#243'n no abonados'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 24
Width = 401
Height = 9
Shape = bsBottomLine
end
object CardOK: TImage
Left = 488
Top = 0
Width = 24
Height = 24
AutoSize = True
Picture.Data = {
07544269746D617096010000424D960100000000000076000000280000001800
0000180000000100040000000000200100000000000000000000100000000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFF
991100000FFFFFFF00000000099110880FFF0000888888888001108800FF8888
888888888880088808FF88888888888888888888080F88888888888888888888
080B88888888888888888888080B888888888000000000008801888800000777
7777777808010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFF
FF777000000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BB
BBBB777700BB1111BBBBBBBBBBBB0000FFBBBBBBBBBBB33BBBBBFFFFFFB33BBB
3BBBB33BBB3BFFFFFFBB3BB33B3BBBBBBBBBFFFFFFB33BBBBBB3BBBBBBBBFFFF
FFB33BBBBBBBBBBBFFFFFFFFFFBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
Visible = False
end
end
object DBGrid1: TDBGrid
Left = 0
Top = 41
Width = 423
Height = 276
Align = alClient
DataSource = DsPrecios
TabOrder = 1
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -19
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'Tiempo'
Title.Alignment = taCenter
Width = 184
Visible = True
end
item
Expanded = False
FieldName = 'Precio'
Title.Alignment = taCenter
Width = 203
Visible = True
end>
end
object DsPrecios: TDataSource
DataSet = TbPrecios
Left = 200
Top = 136
end
object TbPrecios: TTable
BeforeOpen = TbPreciosBeforeOpen
TableName = 'datos\precios.db'
Left = 200
Top = 168
end
end

View File

@ -0,0 +1,36 @@
//---------------------------------------------------------------------------
#ifndef capg_tarifasH
#define capg_tarifasH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DBGrids.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Grids.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TfTarifas : public TForm
{
__published: // IDE-managed Components
TDataSource *DsPrecios;
TTable *TbPrecios;
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TImage *CardOK;
TDBGrid *DBGrid1;
void __fastcall TbPreciosBeforeOpen(TDataSet *DataSet);
private: // User declarations
public: // User declarations
__fastcall TfTarifas(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TfTarifas *fTarifas;
//---------------------------------------------------------------------------
#endif

BIN
cap_gestion/car_find.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

BIN
cap_gestion/card.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
cap_gestion/card.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

BIN
cap_gestion/cfg.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

8
cap_gestion/cleanup.bat Normal file
View File

@ -0,0 +1,8 @@
del *.~*
del *.tds
del *.obj
del *.ilc
del *.ild
del *.ilf
del *.ils

BIN
cap_gestion/comparar.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

463
cap_gestion/crd_ctrl.cpp Normal file
View File

@ -0,0 +1,463 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#include <mmsystem.h>
#include <inifiles.hpp>
#include "stdio.h"
#pragma hdrstop
#include "crd_ctrl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TCardCtrl *CardCtrl;
//---------------------------------------------------------------------------
__fastcall TCardCtrl::TCardCtrl(TComponent* Owner)
: TForm(Owner)
{
LM_opened = false;
char COMM[][10] = { "COM1", "COM2", "COM3", "COM4" };
IDcard = 0;
TbCards->Active = true;
Height = 270;
// Recuperamos la configuraci<63>n
TIniFile *ini;
ini = new TIniFile( ExtractFileDir( Application->ExeName ) + "\\CAP.INI" );
// General
PuertoE = ini->ReadInteger( "CAP_w", "PuertoEscritor", 1 );
AbrePuerto( COMM[PuertoE]);
cb_PosP = ini->ReadInteger( "CAP_w", "PosPrefijo", 0 );
cb_LenP = ini->ReadInteger( "CAP_w", "LenPrefijo", 2 );
cb_PosC = ini->ReadInteger( "CAP_w", "PosCodigo", 2 );
cb_LenC = ini->ReadInteger( "CAP_w", "LenCodigo", 8 );
cb_PosR = ini->ReadInteger( "CAP_w", "PosRevision", 10 );
cb_LenR = ini->ReadInteger( "CAP_w", "LenRevision", 2 );
cb_PosFd = ini->ReadInteger( "CAP_w", "PosFechaDesde", 12 );
cb_PosFh = ini->ReadInteger( "CAP_w", "PosFechaHasta", 18 );
delete ini;
}
//---------------------------------------------------------------------------
int __fastcall TCardCtrl::LocateCard( int idc, int owner )
{
int dev = idc; int version = 0;
if ( !TbCards->Locate( "id", idc, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
Height = 270;
noCardFound->Visible = true;
TbCards->Insert();
TbCards->FieldByName("idowner")->AsInteger = owner;
TbCards->FieldByName("idCard")->AsInteger = 0+((version&0x1F)<<1)+(owner<<6);
TbCards->FieldByName("vCard")->AsInteger = version;
TbCards->Post();
dev = TbCards->FieldByName( "id" )->AsInteger;
}
return dev;
}
//---------------------------------------------------------------------------
void __fastcall TCardCtrl::BitBtn2Click(TObject *Sender)
{
if ( TbCards->FieldByName("idCard")->AsInteger & 0x0001 )
{
ShowMessage( "La tarjeta pertenece a un ABONADO TEMPORAL, por lo que su version no puede ser incrementada");
} else {
int newVersion, idCard;
if ( Application->MessageBox("Reasignaci<EFBFBD>n c<>digo tarjeta, inutilizar<61> la tarjeta actual. <20>Realmente desea continuar?", "CRD: cambio de tarjetra", MB_OKCANCEL) != IDOK)
return;
newVersion = (TbCards->FieldByName("vCard")->AsInteger+1)%32;
idCard = TbCards->FieldByName("idCard")->AsInteger;
TbCards->Edit();
TbCards->FieldByName("vCard")->AsInteger = newVersion;
TbCards->FieldByName("idCard")->AsInteger = (idCard & 0xFFC1) + ((newVersion&0x1F)<<1);
TbCards->Post();
}
}
//---------------------------------------------------------------------------
//----------------------- ESCRITOR DE TARJETAS ------------------------------
int __fastcall TCardCtrl::AbrePuerto(LPTSTR lpszPortName)
{
DWORD dwError;
DCB PortDCB;
COMMTIMEOUTS CommTimeouts;
if ( LM_opened ) return true;
LM_opened = false;
// Open the serial port.
LM_handle = CreateFile (lpszPortName, // Pointer to the name of the port
GENERIC_READ | GENERIC_WRITE,
// Access (read/write) mode
0, // Share mode
NULL, // Pointer to the security attribute
OPEN_EXISTING,// How to open the serial port
0, // Port attributes
NULL); // Handle to port with attribute
// to copy
// If it fails to open the port, return FALSE.
if ( LM_handle == INVALID_HANDLE_VALUE )
{
dwError = GetLastError ();
return false;
} else {
LM_opened = true;
}
PortDCB.DCBlength = sizeof (DCB);
// Get the default port setting information.
GetCommState (LM_handle, &PortDCB);
// Change the DCB structure settings.
PortDCB.BaudRate = 9600; // Current baud
PortDCB.fBinary = TRUE; // Binary mode; no EOF check
PortDCB.fParity = TRUE; // Enable parity checking.
PortDCB.fOutxCtsFlow = FALSE; // No CTS output flow control
PortDCB.fOutxDsrFlow = FALSE; // No DSR output flow control
PortDCB.fDtrControl = DTR_CONTROL_ENABLE;
// DTR flow control type
PortDCB.fDsrSensitivity = FALSE; // DSR sensitivity
PortDCB.fTXContinueOnXoff = TRUE; // XOFF continues Tx
PortDCB.fOutX = FALSE; // No XON/XOFF out flow control
PortDCB.fInX = FALSE; // No XON/XOFF in flow control
PortDCB.fErrorChar = FALSE; // Disable error replacement.
PortDCB.fNull = FALSE; // Disable null stripping.
PortDCB.fRtsControl = RTS_CONTROL_ENABLE;
// RTS flow control
PortDCB.fAbortOnError = FALSE; // Do not abort reads/writes on
// error.
PortDCB.ByteSize = 7; // Number of bits/bytes, 4-8
/*
PortDCB.ByteSize = 8; // Number of bits/bytes, 4-8
*/
PortDCB.Parity = EVENPARITY; // 0-4=no,odd,even,mark,space
PortDCB.StopBits = 0; // 0,1,2 = 1, 1.5, 2
// Configure the port according to the specifications of the DCB
// structure.
if (!SetCommState (LM_handle, &PortDCB))
{
// Could not configure the serial port.
///*-*/ printf( "Unable to configure the serial port\n%s\n" );
dwError = GetLastError ();
return FALSE;
}
// Retrieve the time-out parameters for all read and write operations
// on the port.
GetCommTimeouts (LM_handle, &CommTimeouts);
// Change the COMMTIMEOUTS structure settings.
CommTimeouts.ReadIntervalTimeout = MAXDWORD;
// CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.ReadTotalTimeoutMultiplier = 1000;
CommTimeouts.ReadTotalTimeoutConstant = 1000;
CommTimeouts.WriteTotalTimeoutMultiplier = 10;
CommTimeouts.WriteTotalTimeoutConstant = 1000;
// Set the time-out parameters for all read and write operations
// on the port.
if (!SetCommTimeouts (LM_handle, &CommTimeouts))
{
// Could not set the time-out parameters.
///*-*/ printf( "Unable to set the time-out parameters" );
dwError = GetLastError ();
return FALSE;
}
// Direct the port to perform extended functions SETDTR and SETRTS.
// SETDTR: Sends the DTR (data-terminal-ready) signal.
// SETRTS: Sends the RTS (request-to-send) signal.
EscapeCommFunction (LM_handle, SETDTR);
EscapeCommFunction (LM_handle, SETRTS);
return LM_opened;
};
void __fastcall TCardCtrl::CierraPuerto(void)
{
if ( LM_opened )
{
CloseHandle( LM_handle );
}
};
// ObtenerRespuesta
// Lee del puerto los datos pendientes del buffer
// (solo lee lo que expulse el LM)
//
//
char * __fastcall TCardCtrl::ObtenerRespuesta( char *rcv )
{
bool waitingResp = true;
DWORD CHK, chkF = 0;
int i = 0;
DWORD dwCommModemStatus;
if ( LM_opened )
{
/*
// Specify a set of events to be monitored for the port.
SetCommMask (LM_handle, EV_RXCHAR | EV_CTS | EV_DSR | EV_RLSD | EV_RING);
// Wait for an event to occur for the port.
WaitCommEvent (LM_handle, &dwCommModemStatus, 0);
// Re-specify the set of events to be monitored for the port.
SetCommMask (LM_handle, EV_RXCHAR | EV_CTS | EV_DSR | EV_RING);
*/
// Recogemos la respuesta del lector
while( i < 75 )
{
ReadFile( LM_handle, &(rcv[i]), 1, &CHK, NULL );
if ( CHK == 1 )
{
if ( waitingResp )
{
if ( rcv[i] != 0x06) waitingResp = false;
// ACK
// printf( "Esperando a la tarjeta\n" );
}
if ( rcv[i] == 13 ) break; else {
if ( !waitingResp || i==0 ) i++;
}
} else
if ( CHK == 0 )
{
chkF++;
if ( chkF == 20 )
{
sprintf( rcv, "ERROR: Respuesta fuera de tiempo" );
return rcv;
}
}
}
rcv[i+1] = '\0';
} else {
sprintf( rcv, "ERROR: LM no abierto" );
}
#ifdef _verbose
///*-*/ printf( "Recibido: %s\n", rcv );
#endif
return rcv;
};
// EnviarComando
// Envia el comando CMD al lector ID, devolviendo la respuesta 'rcv'
//
//
//
char * __fastcall TCardCtrl::EnviaCMD1( char *CMD, char *rcv, char mlen )
{
DWORD CHK;
if ( LM_opened )
{
#ifdef _verbose
///*-*/ printf( "Enviado: %s\n", CMD );
#endif
WriteFile( LM_handle, CMD, strlen(CMD)+mlen, &CHK, NULL );
ObtenerRespuesta( rcv );
} else
sprintf( rcv, "ERROR: LM no abierto" );
return rcv;
}
char * __fastcall TCardCtrl::EnviaCMD( char *CMD, char *rcv )
{
EnviaCMD1( CMD, rcv, 0 );
return rcv;
}
#define ZT_ClearCommand "/CL0/"
// #define ZT_ReadCommand "/RD3/"
#define ZT_ReadCommand "/RD1/"
#define ZT_WriteCommand "/WR1/"
#define ACK 0x06
#define STX 0x02
#define NAK 0x15
#define ETX 0x03
#define EOT 0x04
#define CR 0x0D
char __fastcall TCardCtrl::CalculaBCC( char *cadena )
{
int i, dev=0;
for ( i=0; cadena[i] != ETX; i++ )
{
dev ^= cadena[i];
}
dev ^= cadena[i];
return dev;
}
char * __fastcall TCardCtrl::LeeTarjeta( char *rcv )
{
// Leemos una tarjeta
char buff[3], buff2[80];
EnviaCMD( ZT_ReadCommand, rcv );
if ( rcv[0] == ACK && rcv[1] == 0x0D )
{
// Ahora si se ha recibido <ACK><CR> Leemos la tarjeta que pasemos
sndPlaySound("snd\\inserta_card_leer.wav", SND_ASYNC | SND_FILENAME);
ObtenerRespuesta( rcv );
// Vemos si es la tarjeta o un error
if ( rcv[0] == STX && rcv[1] == '/' && rcv[2] == 'E' && rcv[3] == 'R' )
{
//es un error
#ifdef _verbose
///*-*/ printf( "Error: %d", rcv[1] );
#endif
} else {
char len = 0;
while( rcv[len]!=CR )len++;
char BCC = CalculaBCC( &rcv[1] ),
BCCr = rcv[ len-1 ];
if ( BCC != BCCr )
{
sprintf( rcv, "Error: BCC recibido es incorrecto BCC(%x) != R(%x)\n", BCC, BCCr );
}
}
buff[0] = ACK; buff[1] = '\0';
EnviaCMD( buff, buff2 );
} else {
sprintf( rcv, "ERROR: Commando no aceptado\n");
}
return rcv;
}
char * __fastcall TCardCtrl::EscribeTarjeta( char *datos, char *rcv )
{
// Leemos una tarjeta
char env[140], buff[140], BCC;
EnviaCMD( ZT_WriteCommand, rcv );
if ( rcv[0] == ACK && rcv[1] == CR )
{
sprintf( env, "%s%c", datos, ETX );
BCC = CalculaBCC( env );
sprintf( buff, "%c%s%c", STX, env, BCC );
if ( BCC )
EnviaCMD( buff, rcv );
else
EnviaCMD1( buff, rcv, 1 );
if ( rcv[0] == ACK && rcv[1] == CR )
{
// Ahora si se ha recibido <ACK><CR> Leemos la tarjeta que pasemos
sndPlaySound("snd\\inserta_card_grabar.wav", SND_ASYNC | SND_FILENAME);
ObtenerRespuesta( rcv );
// Vemos si es la tarjeta o un error
if ( !(rcv[0] == EOT && rcv[1] == CR) )
{
//es un error
sprintf( rcv, "Error: %s\n", rcv );
#ifdef _verbose
///*-*/ printf( "Error: %s\n", rcv );
#endif
}
buff[0] = ACK; buff[1] = CR; buff[2] = '\0';
EnviaCMD( buff, rcv );
} else {
sprintf( rcv, "ERROR: No se recibio respuesta despues de los datos\n" );
}
} else {
sprintf( rcv, "ERROR: Commando no aceptado\n");
}
return rcv;
}
void __fastcall TCardCtrl::GrabaTarjeraClick(TObject *Sender)
{
char rcv[140];
statusOK = false;
if ( LM_opened )
{
// Inicializamos el ZT-2300
EnviaCMD( ZT_ClearCommand, rcv );
if ( rcv[0] == 'E' )
{
ShowMessage( "Error inicializando el GRABADOR" );
} else {
char rcv[80], card[140];
ObtenCadenaTarjeta(card);
EscribeTarjeta( card, rcv );
statusOK = !( rcv[0] == 'E' && rcv[5] == ':' );
}
} else {
ShowMessage("El Puerto no pudo ser ABIERTO" );
}
}
//---------------------------------------------------------------------------
char * __fastcall TCardCtrl::ObtenCadenaTarjeta(char *dev)
{
int Prefijo = 20, Rev = 0;
//-----
if ( IDcard != 0 )
sprintf( dev, "%02d%08d%02d", Prefijo, IDcard, Rev );
else
sprintf( dev, "%02d%08d%02d", Prefijo, TbCards->FieldByName("idCard")->AsInteger, Rev );
return dev;
}
void __fastcall TCardCtrl::VerificarTarjetaClick(TObject *Sender)
{
char rcv[140];
if ( LM_opened )
{
// Inicializamos el ZT-2300
EnviaCMD( ZT_ClearCommand, rcv );
if ( rcv[0] == 'E' )
{
ShowMessage( AnsiString( rcv ) + "Error inicializando el GRABADOR" );
} else {
char rcv[80], buff[80], card[140];
ObtenCadenaTarjeta(card);
LeeTarjeta( rcv ); int i;
for( i=1; rcv[i] != ETX; i++ ) buff[i-1]=rcv[i];
buff[i-1]='\0';
if ( strcmp( buff, card ) != 0 )
{
sndPlaySound("snd\\card_verify_error.wav", SND_ASYNC | SND_FILENAME);
ShowMessage("La tarjeta pasada, no se corresponde");
} else {
sndPlaySound("snd\\card_verify_ok.wav", SND_ASYNC | SND_FILENAME);
ShowMessage("La tarjeta pasada, es correcta");
}
}
} else {
ShowMessage("El Puerto no pudo ser ABIERTO" );
}
}
//---------------------------------------------------------------------------
void __fastcall TCardCtrl::FormClose(TObject *Sender, TCloseAction &Action)
{
if ( LM_opened ) CierraPuerto();
}
//---------------------------------------------------------------------------

BIN
cap_gestion/crd_ctrl.ddp Normal file

Binary file not shown.

637
cap_gestion/crd_ctrl.dfm Normal file
View File

@ -0,0 +1,637 @@
object CardCtrl: TCardCtrl
Left = -495
Top = 112
AutoScroll = False
Caption = 'CRD-ctrl'
ClientHeight = 243
ClientWidth = 458
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001001818100001000400E80100001600000028000000180000003000
0000010004000000000080010000000000000000000010000000000000000000
0000000080000080000000808000800000008000800080800000C0C0C0008080
80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
0000000991000000000000000000000099100000000000000000000099110000
0000000000000000099110880000000088888888800110880000888888888888
88800888080088888888888888888888080088888888888888888888080B8888
8888888888888888080B88888888800000000000880188880000077777777778
08010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFFFF777000
000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BBBBBB7777
00BB1111BBBBBBBBBBBB000000BBBBBBBBBBB33BBBBB000000B33BBB3BBBB33B
BB3B000000BB3BB33B3BBBBBBBBB000000B33BBBBBB3BBBBBBBB000000B33BBB
BBBBBBBB0000000000BBBBB0000000000000000000000000000000000000FFE3
FF00FFF1FF00FFF00700F0000700000003000000030000000100000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000C000000FC000000FC000000FC000000FC000F00FC1FFF00FFFFFF00}
OldCreateOrder = False
OnClose = FormClose
PixelsPerInch = 96
TextHeight = 20
object Bevel2: TBevel
Left = 0
Top = 49
Width = 458
Height = 175
Align = alClient
end
object noCardFound: TLabel
Left = 16
Top = 224
Width = 433
Height = 57
Alignment = taCenter
AutoSize = False
Caption =
'Este usuario no tenia su tarjeta activa, asi que acabo de genera' +
'r una nueva, lo '#250'nico que debe hacer es pulsar en el icono para ' +
'VOLVER-A-GRABAR la tarjeta actual.'
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
Visible = False
WordWrap = True
end
object Label2: TLabel
Left = 16
Top = 64
Width = 74
Height = 20
Caption = 'ID Tarjeta:'
end
object DBText1: TDBText
Left = 104
Top = 64
Width = 65
Height = 17
DataField = 'idCard'
DataSource = DsCards
end
object Label3: TLabel
Left = 16
Top = 88
Width = 58
Height = 20
Caption = 'Versi'#243'n:'
end
object DBText2: TDBText
Left = 104
Top = 88
Width = 65
Height = 17
DataField = 'vCard'
DataSource = DsCards
end
object Label4: TLabel
Left = 312
Top = 56
Width = 102
Height = 20
Caption = 'Franja horaria:'
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 458
Height = 49
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label1: TLabel
Left = 0
Top = -4
Width = 389
Height = 45
Caption = 'Grabador de Tarjetas'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -32
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 441
Height = 9
Shape = bsBottomLine
end
object CardOK: TImage
Left = 408
Top = 0
Width = 24
Height = 24
AutoSize = True
Picture.Data = {
07544269746D617096010000424D960100000000000076000000280000001800
0000180000000100040000000000200100000000000000000000100000000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFF
991100000FFFFFFF00000000099110880FFF0000888888888001108800FF8888
888888888880088808FF88888888888888888888080F88888888888888888888
080B88888888888888888888080B888888888000000000008801888800000777
7777777808010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFF
FF777000000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BB
BBBB777700BB1111BBBBBBBBBBBB0000FFBBBBBBBBBBB33BBBBBFFFFFFB33BBB
3BBBB33BBB3BFFFFFFBB3BB33B3BBBBBBBBBFFFFFFB33BBBBBB3BBBBBBBBFFFF
FFB33BBBBBBBBBBBFFFFFFFFFFBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
Visible = False
end
end
object StatusBar1: TStatusBar
Left = 0
Top = 224
Width = 458
Height = 19
Panels = <>
SimplePanel = False
end
object DBCheckBox1: TDBCheckBox
Left = 312
Top = 112
Width = 105
Height = 17
Caption = 'Tarjeta VIP'
DataField = 'vip'
DataSource = DsCards
ReadOnly = True
TabOrder = 2
ValueChecked = 'True'
ValueUnchecked = 'False'
end
object DBLookupComboBox1: TDBLookupComboBox
Left = 312
Top = 80
Width = 145
Height = 28
TabOrder = 3
end
object GroupBox1: TGroupBox
Left = 16
Top = 112
Width = 241
Height = 105
Caption = 'Estado actual'
TabOrder = 4
object DBText3: TDBText
Left = 8
Top = 80
Width = 65
Height = 17
DataField = 'msg'
DataSource = DsCards
end
object DBText4: TDBText
Left = 144
Top = 16
Width = 89
Height = 17
Alignment = taRightJustify
DataField = 'idowner'
DataSource = DsCards
Font.Charset = DEFAULT_CHARSET
Font.Color = clMaroon
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object DBCheckBox2: TDBCheckBox
Left = 8
Top = 24
Width = 97
Height = 17
Caption = 'acceso'
DataField = 'acceso'
DataSource = DsCards
TabOrder = 0
ValueChecked = 'True'
ValueUnchecked = 'False'
end
end
object GrabaTarjera: TBitBtn
Left = 264
Top = 136
Width = 49
Height = 41
Hint = 'Escribir tarjeta'
ParentShowHint = False
ShowHint = True
TabOrder = 5
OnClick = GrabaTarjeraClick
Glyph.Data = {
46090000424D4609000000000000360400002800000024000000240000000100
0800000000001005000000000000000000000001000000000000FFFFFF00FFFF
FF0000000000666633007070700033980000CBCB9800FFFFCB00333300000066
CB00003366003366660066CBFF00FFFF6600006698008080800098CBCB000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000090909090909
0909090909090909090909090909090909090909090909090909090909090909
0909090909090909090909090909090909090909090909090909090909090909
0909090909090909090909090909090904090909090909090909090909090909
0909090909090909090909090909090909090904020404090909040909090909
0909090909090909090909090909090909090909090904020002020404040404
0909090909090909090909090909090909090909090909090904020000070702
0204020404090909090909090909090909090909090909090909090904020007
0706050302020002040409090909090909090909090909090909090909090904
0207070605030202000000000204040909090909090909090909090909090909
0909040207060503020200000000000000020204040909090909090909090909
0909090909040206050302020000000000000000000002020204040909090909
0909090909090909040205030202000000000000000000000000000203020204
0409090909090909090909040203020200000000000000000000000000000707
0203060202040409090909090909040202020000000000000000000000000007
0707070707020306070204090909090909040202000000000000000000000000
0707070D06060607000002030204040909090909020200000000000000000000
0000000606050505060607000000000204040404090909090902000000000000
0000000000000303030305060D00000000000000020404090909090909090200
00000000000000000002020805060D0000000000000000000002090909090909
09090902000000000000000000020209090B0F00000000000000000000000209
09090909090909090200000000000000000B0C0909090E020200000000000000
02020909090909090909090909020000000000000010090C090A0A0308020000
00000202090909090909090909090909090902000000000000000B0C0A050503
030802000202090909090909090909090909090909090902000000000000040E
0A05050503030802090909090909090909090909090909090909090902000000
0000000200060505050303080209090909090909090909090909090909090909
0902000000000002050006050505030308020909090909090909090909090909
0909090909090200000000000205000605050503030802090909090909090909
0909090909090909090909020000020209020500060505050303080209090909
0909090909090909090909090909090902020909090902050006050505030308
0209090909090909090909090909090909090909090909090909090205000605
0503030808020909090909090909090909090909090909090909090909090909
0205000603030808080802090909090909090909090909090909090909090909
0909090909020507030308080803020909090909090909090909090909090909
0909090909090909090902030503030803030209090909090909090909090909
0909090909090909090909090909090205050503030209090909090909090909
0909090909090909090909090909090909090909020503030209090909090909
0909090909090909090909090909090909090909090909090902020209090909
0909090909090909090909090909090909090909090909090909090909090909
0909090909090909090909090909090909090909090909090909090909090909
09090909090909090909}
end
object BitBtn2: TBitBtn
Left = 400
Top = 136
Width = 49
Height = 41
Hint = 'Incrementar la version'
ParentShowHint = False
ShowHint = True
TabOrder = 6
OnClick = BitBtn2Click
Glyph.Data = {
660F0000424D660F000000000000360000002800000024000000240000000100
180000000000300F0000C40E0000C40E00000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFF0099CC0099990066
6600336600336600336600336600336600336600336600336600336600336600
3366003366003366003366003366006666FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFF33CCFF00CCFF0099CC00999900666600336600336600336600336600
6666006666006666006699006699006699006699006666006666009999FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99FFFF33CCFF33CCFF00CCFF0099CC00
99990066990066990066990066990099990099CC0099CC00CCFF00CCFF00CCCC
0099CC009999009999FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFF66
CCFF66CCFF66CCFF33CCFF00CCFF00CCCC0099CC0099CC0099CC0099CC00CCFF
00CCFF33CCFF33CCFF33CCFF00CCFF00CCFF33CCFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFCCFFFF99FFFF99FFFF66CCFF66CCFF33CCFF00CCFF
00CCFF00CCCC33CCFF33CCFF66CCFF66CCFF66CCFF66CCFF66CCFF33CCFF0099
99330033330033330033330033330033330033993366FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99FFFF99FFFF
99FFFF99FFFF66CCFF33CCFF00CCFF00CCCC66CCFFFFFFFFFFFFFFFFFFFF9966
9933003333003333003333003333003333003366006633003333003333003333
0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFF99FFFF99FFFF99FFFF99FFFF66CCFF33CCFF00CCCC0099
99009999CCCCCC99336666006666006666006666006666006666009966009966
0099660099660099660099660066FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99FFFF99FFFF99FF
FF99FFFF66CCFF00CCFF0099CC00669900666600336666009966009966009966
00999900CC9900CC9900CCCC33FFCC33FFCC33FF9900CC9900CCFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFCCFFFF99FFFF99FFFF66CCFF33CCFF00CCFF00999900666600
33660033669900CC9900CC9900CC9900CCCC33FFCC66FFCC66FFCC66FFCC99FF
CC66FFCC66FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFF99FFFF99FFFF66
CCFF33CCFF0099CC006666003366003366003366CC33FFCC33FFCC33FFCC33FF
CC66FFFFCCFFFFCCFFFFCCFFCC99FFCC99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFCCFFFF99FFFF99FFFF66CCFF33CCFF0099CC006666003366003366
003366CC33FFCC33FFCC66FFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFCC99FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFF99FFFF99FFFF66CCFF
33CCFF0099CC006666003366003366996699CC33FFCC99FFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFCC99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCC99
9999999999999999999999999999999999999999FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFCCFF99FFFF66CCFF33CCFF00CCFF009999003366003366003366CC33
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC99FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFCCCC990033660000660000660000660000660000993366
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFF66CCFF66CCFF33CCFF0099
CC006699003366003366999999FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
66FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC0033990033660000
003366003366003366003366006666003366003366CCCCCCFFFFFFFFFFFFFFFF
FF99FFFF33CCFF33CCFF00CCFF009999006666003366999999FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFCC33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFCCCCCC0033CC00339900330099990099CC0099990066660033660033660033
66999999FFFFFFFFFFFFFFFFFF66CCFF33CCFF33CCFF00CCFF0099CC00669900
6666999999FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC99FF9900CCFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC3366CC3366CC003399669933CCFF00CC
FF0099CC009999006666003366003366CCCCCCFFFFFFCCFFFF00CCCC00CCFF33
CCFF00CCFF0099CC009999006699CCCCCCFFCCFFFFFFFFFFFFFFFFFFFFCCCCCC
6600999900CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC3366CC33
66CC3366CC336666CCFF66CCFF33CCFF33CCFF0099CC00669900666600666600
99990099CC00CCFF33CCFF33CCFF33CCFF00CCFF0099CC0099CCFFCCFF660099
6600999933669933666600666600999900CCFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFCCCCCC3366CC3366CC3366CC003399999999FFFF99FFFF66CCFF66
CCFF33CCFF00CCFF00CCFF00CCFF00CCFF33CCFF33CCFF33CCFF33CCFF00CCFF
00CCFF33CCFFFFCCFF9900CC9900CC6600996600996600996600999900CCFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC3366CC3366CC3366CC003399
0033CCCCCC99FFFF99FFFF99FFFF66CCFF66CCFF66CCFF66CCFF66CCFF66CCFF
66CCFF66CCFF33CCFF33CCFF33CCFFFFFFFFFFFFFFCC33FFCC33FF9900CC9900
CC9900CC9900CC9900CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC
3366CC3366CC3366CC003366000066000099999999FFFF99FFFF99FFFF99FFFF
99FFFF99FFFF66CCFF66CCFF66CCFF66CCFF66CCFF99FFFFFFFFFFFFFFFFFFFF
FFCC66FFCC66FFCC66FFCC33FFCC33FFCC33FFCC33FFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFCCCCCC3366CC3366CC3366CC0033660000660000993366
FFFFFFCCFFFFCCFFFFCCFFFF99FFFF99FFFF99FFFF99FFFFCCFFFFCCFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFCC66FFCC99FFCC99FFCC66FFCC66FFCC66FFCC
33FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCCC3366CC3366CC3366
CC0033660000660000993366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC99FFCC99FFCC
99FFCC99FFCC99FFCC66FFCC66FFFFCCCCCCCCCCFFFFFFFFFFFFFFFFFFFFFFFF
FFCCCCCC0033CC3366CC0033CC0033660000660000993366FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFCCFFCC99FFCC99FFCC66FFCC66FFFF9999660000
660000996699FFCCCCFFFFFFCCCCCCCC0033CC0033CC0033CC00336600006600
00993366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC99FF
CC66FFCC66FFFF9999990033660000660000660000996699FF9999CC0033CC00
33CC0033990033660000660000993366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFCCFFCCCCCC999999996699993366330033993366FFFFFF
FFFFFFFFFFFFFFFFFFFFCCFFCC66FFCC33FFFF9999CC3366CC0033CC00339900
33660000990033CC0033CC0033CC0033990033660000660000993366FFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFCC66FF660099660099660066330033330033
330033330033330033FFCCFFFFFFFFFFFFFFFFFFFFFFCCFFCC33FFCC33FFFFCC
CCFF6666FF6666CC3366CC3366CC0033CC0033CC0033CC0033CC003399003366
0000660000993366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC66FF9900CC
9900CC660099660099660066330033330033330033996699FFFFFFFFFFFFFFFF
FFCC66FF9900CCCC33FFFFCCCCFF9999FF9999FF9999FF6666FF6666CC3366CC
3366CC3366CC0033990033660000660000993366FFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFCCFFCC66FFCC33FFCC33FF9900CC6600996600996600663300
33330033996699CC99FF9966996600999900CC9900CCFFFFFFFFCCCCFFCCCCFF
9999FF9999FF9999FF6666FF6666CC3366CC0033CC0033660000660000993366
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC99FFCC66FFCC66FFCC66
FFCC33FF9900CC9900CC6600996600666600666600666600999900CC9900CCCC
33FFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCFF9999FF9999FF9999FF6666CC3366
CC0033990033660000993366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFCCFFCC99FFCC99FFCC99FFCC99FFCC66FFCC33FFCC33FF9900CC9900CC99
00CC9900CCCC33FFCC33FFCC66FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCC
FF9999FF9999FF9999FF6666CC3366CC0033990033993366FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFCC99FFCC99FFCC99FFCC99FFCC
99FFCC66FFCC66FFCC66FFCC66FFCC66FFCC66FFCC66FFCC66FFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFCCCCFF9999FF9999FF9999FF6666CC3366CC00
33CC3366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFCCFFCC99FFCC99FFCC99FFCC99FFCC99FFCC99FFCC99FFCC66FFCC66FF
CC66FFCC66FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCCCFF99
99FF9999FF6666FF6666CC3366CC3366FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFFCCFFCC99FFCC99FFCC99FF
CC99FFCC99FFCC99FFCC99FFCC99FFCC99FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFCCCCFFCCCCFF9999FF9999FF6666FF9999FFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFCCFFFFCCFFFFCCFFFFCCFFFFCCFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFF}
end
object VerificarTarjeta: TBitBtn
Left = 320
Top = 160
Width = 49
Height = 49
Hint = 'Verificar Tarjeta'
ParentShowHint = False
ShowHint = True
TabOrder = 7
OnClick = VerificarTarjetaClick
Glyph.Data = {
36150000424D361500000000000036000000280000002A0000002A0000000100
1800000000000015000000000000000000000000000000000000FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F8FFF0F8FFFFFFFFFFFF
FFF0F7F0F0F0F0F0F8FFDFFFF0FFF8FFF0FFFFEFF0F0AFD7CFFFF8FFF0F7F0FF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6001FFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F8FFF0F8FFFFFFFFF0FF
FFEFEFEFE0E8E0E0E8EFAFCFCFFFF0F0F0FFFFFFFFFFCFF7EFFFF8FFFFF0F0FF
F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFF7F0FFFFFF
FFFFFFFFF8FFFFFFFFEFEFEFFFFFFFF0F7F0FFF7FFFFEFF0FFF7F0FFFFFFFFF7
F0FFFFFFF0F8F0FFFFFFF0F7FFCFCFD090C7CFC0C0D090C8CF9FC7C07FC8C090
C7BFA0D0D0A0C7C0DFFFFFDFF7F0EFFFFFEFF7F0FFF8FFFFFFFFFFF0FFEFE7DF
FFFFFFFFF0FFC0C0D0C0D0CF3F104F80507FFFF7FFFFF7FF0000FFF8FFFFFFFF
F0F7F0FFF8FFFFFFFFFFFFFFF0F0F0F0F7F0F0FFFFEFF8F0EFFFFFE0FFFFD0F7
EFAFD0CF9FC0C0AFCFD060C7C090BFC07FC7CF80BFC060C7C0B0C8D0AFD7D090
C8C080B0B0A0D0D0AFD0D0A0C0C0B0C8CFAFB8C0EFF8FFEFF0FFFFFFE0E0F7FF
BFB7D0BFBFAF9F979F3F0060305F5F2018506F586FFFEFFF0000FFFFFFFFFFFF
FFF8FFFFF8FFF0F7F0FFFFFFE0E8EFFFFFFFE0F8F0D0F7EFD0F8F090C7BF90C7
C0A0D7DFA0D7E08FB7C0B0C7DFAFC0D09FCFDFBFCFE090C7D090B8CF8FC7CFA0
C8CFAFE7E08FBFBF9FC8CF90BFC0AFD0DFAFC8D080A0AF90A8BFD0CFC0CFC8C0
C0CFCF9F98AF400F5F00504F807FCF8FBFD03F3040FFF7FF0000FFF8FFFFF8FF
FFFFFFFFFFFFF0F0F0FFFFFFEFF7F0F0FFFFF0FFFFC0D7D0B0D0D0A0C7C09FC7
CF90B7C08FA8BF809FB0AF98B08090AF809FB0AFA8C090A7BF7FA7BF80B8C0B0
C7DF70B0AF9FD7D090C7CF90C0CF80AFBF608F9F6F90A06F90A0A0C8DFFFF7DF
A0A0A030005F00675F8FA7CF7FC8CF1F0830BFB0BFFFF8FF0000FFFFFFFFF7F0
FFF8FFFFF8FFFFFFFFFFFFFFF0FFFFAFBFBFE0F7F0B0CFD09FC0C09FC0C070A0
AF6F90A060809F7F97B04F97A06F97AF7098AF4F97A05F8FA08F9FB0A0A7C07F
9FB0A0D8DF90C8CF60979F709FAF6F97A0507F9080A7BF9FC0D0DFFFFF8090BF
60005F00774F6F97C07FD8E08F6F7FDFD8D0FFF8FFF0EFF00000FFFFFFFFF8FF
FFF8FFFFF8FFFFF8FFEFF0F0F0FFFFAFC0BFA0D7DF80B8BF60A0A05F989F4080
80609FA06F97A07FA0B08098A07F98A08F98A06F98A07F8FA07097AF9097B070
88B07FA7B05F87906F90A06F909F7097A08FA8B0AFCFDFD0F0FF7F90AF60086F
00604F7F8FBF80FFFF9F6870DFC0C0FFFFEFFFF8FFF0F0F00000F0F8FFFFFFFF
FFF8FFFFF7F0F0F0F0DFE0E0D0E0E0C0DFDF9FC0D05F8F9F508F906FA8AF70A8
AF6F989F6F878F80979FCF979F909090A0979F9F9FAFAF88A05F8FA07F97B09F
9FCF6F88A090AFCF809FB08FA7B0AFC7D0BFD0D0E0F7F05067604000600F7040
7F77A08FF7FF90676FCFC8B0FFFFF0F0F8FFEFE8EFFFFFFF0000F0F8F0FFFFFF
FFF8FFFFF8FFFFFFFFEFF0EF90A7A0AFC0C09FA0BF8097AF8FA7B06F8F907F90
908F9090A09FA0AF9FA07F988F7F9F908F88801F58500F172000072010002F00
002F00083000002F40506F808FA09FA7AF7F878090A09F606F600F0010001750
B0FFFF906860BF9090FFF8FFE0FFFFFFF7FFFFF8FFFFFFFF0000FFF0EFF0FFFF
EFF8FFFFF8FF8FC8BFAFD7D0E087A0CFD0EFFFF0EF9F9F9FFFFFEFC0C7FFA0A0
708F98AFA09F908F97908FA06F0F00100F084000004F80703FB06F60905060AF
774FA0687080674F2008200F003F0000207068904F604000000F20508F000000
2F1750908F9FA0C0CF90D8BFF0E8FFFFFFF0FFF8FFFFF8FF0000FFF8FFEFFFFF
F0F7FFDFFFFFE0FFFFAFBFBFC0577080A7B0AF98BFFFFFBFB0B8E0FFFFEFB0CF
D0F0E8B0D0D0FF8F976F10002FA0478F8F5F60B0AF8FB097509F8F7F7F98709F
9060909050B0A08080676F80685F8F607040283F00001F3F685F1F174FCFFFF0
7F7FA0AFD7DF9FC0C0E0F7DF9FC0DFE0FFEFFFF8FFFFF8FF0000EFFFF0E0E8EF
FFF0FF90CFC0DFFFF0A0C7B0A02F40EFFFFFEFFFC0FFF7FFFFEFFFDFD7E0FFFF
D0DFEFB09F987F0F00209F704F8FA86F9F9F4FC0AF40BFC87FC0BF70EFC790AF
D060CFD770B0A770BFB770BFAF60AF8F7F80775F4F3770000000A0E7FFCFE0D0
9FC7DF90B0B09FCFCF8FE7CFF0F7FFEFF8EFFFF8FFFFFFFF0000FFFFFFFFF8FF
FFF7FFAFFFF0A0C7BFD09F9F902730C0FFFFF0F7EFFFFFEFFFFFEFEFDFE0F0FF
CFAF988F1007008F70708F906FBFB7B0FFD8A0FFD0D0D0DFAFB0FF3FDFA8AFFF
F740FFC8AFEFCFA0E0FF50B0BF7FB0D04F90886F80686F50207F106870B0FFF0
AFC8D09FD7D07FC8C080C0B0A0C0CFFFF7FFF0F8FFFFF8FF0000D0FFFFFFE7EF
FFE8FFB0D7D0A0FFEF905F5FFFF7F0F0FFFFFFF7FFE0FFF0FFF0B0E0FFF0B088
6F202F408F605FA0A07FDFC07FAFF740C0C8AFFFFFAFFFFF90EFFF80EFFF90F0
FF8FFFFFA0FFFF80D0C7B0C0C78FFFD7FFDFD09F9F88609080502F384F6F9FAF
B0F0EF8FD0D09FCFCFB0C7D09FC7C0AFCFDFFFFFFFFFFFFF0000FFFFFFFFF7FF
A0D0DF80AFB09FE7D0A02830FFFFF0C0F7EFE0F8E0FFE7EFE0FFFFFFF7A03030
70AF8760808F6FCFB79F9FFF5030C82090C85F90503F6F586FDFF8D0FFF8EFE0
E8CFFFFFC0FFFFCFFFFFDFFFF7B0FFE890FFCFD0CFC88F7F87608F687F603760
DFFFFFA0C0CF8FB8B08FD0DF90C0AFB0F8FFF0FFFFF0FFFF0000EFFFF0FFF8FF
E0F7FF9FBFC0C0FFFF7F3F40DFF0EFF0FFFFF0F8FFFFFFF0E0FFBFFFF8FF3F30
307F58809F9770D0D880AFFF7F0090004FFFBF7FE8D06F60309FBF704FBF1FFF
FFBFDFF0B0F0F8D0FFFFCFFFF8B0FFFFA0F0D0BFD0CFA0C0CFA080585F402750
FFD7CFB0C8CF90D0BF9FC0CF90E7B0B0C0CFE0EFEFF0F8FF0000FFFFF0AFC7C0
A0C0CF90D7DFAFBFC0501820E0FFFFDFF7FFFFFFDFF0F7FFFFF7FF7F807F5F3F
60909F808F9040D0CFAFFFCFBF1F8F1040FFFF10C7C000A80000981010A8004F
504070673FB0B77FEFFFAFEFFFC0FFFFDFF0F790EFD0B0DFC0AFAF90804F305F
AFDFB0AFC8BFAFB79FD0CFD0BFBF80FFFFFFCFD7D0E0EFEF0000E0FFFFFFF0EF
CFD0C0B0C0AF9F7060E0C8C0EFFFFFA09FA0C0DF90C0AFCFAF90DF5F376F6F57
6FB09770CFCF6FCFCF700088007FD0C070EFFF1FEF403F8F0F5F601FA0FFD040
FFFF50FFF0009F0F70B77F8F6F0F6F7840BFB7BFBFD790FFC0CFBFC8A0A06860
40405FC0C0A0AFD8A0B0B7B0BFD7C080CFCFDFF7F0EFFFFF0000F0FFFFFFEFEF
C0C0B0C0C0AF60372FCFB7AFE0F8F0C0C0C08F90CF8F9FC0A0989060404F906F
6FAFDF40EFFF5FF0B7BF3FDF6040F7FF7FFFFF00900000B7706FFFFF7FF0DF6F
F7FF009F0070EFFF50FFFF5FFFFF20C06FA0704FFFD7A0F0D0C0CFBF9F9F6060
302F5FD0C7B0B0D090C0C7B0BFC7AF9FBFBFC0D7D0E0EFEF0000FFF7FFE0C7CF
EFD8D0D0C7B05F3720CFB7AFF0FFF0BFBFBFDFCF8FEFD790C088AF1F307F8F60
5FBF9F5FBFB86F00A00F1FC76F7FFFFF6FEFDF6FFFEF5FFFFF70FFFF00970000
A0401FBF502FCF3F4FC75060FF9F3FD7FF40C0A000981FBFBFA0FFDFBF905060
302F6FC09F9F909850CFCFA0A0A070DFCFD0F0F8FFFFFFFF0000FFF8FFFFF7FF
F0CFCFEFC7BF604030FFFFEFFFFFEFF0F7EFB0C07FBFC88FC087802F4850B077
60BFB87FDFD7A01090407FF7FF60F7EF10D05F20B86F7FFFC04FF0F000C04F0F
970010A000606040905F2F2F701060D09FA0FFFF2FC78FC0BFA0FFD7BF905F70
303880CF9790C0C070909860CFC790F0BFC0D0C7CFEFE7EF0000FFF8FFE0C8CF
FFD7D0E0AFA040281FBFB7A0E0E0D0C0C0B0DFE0AFD0D8AFCF80AF2F3070A04F
6FAF986FCFCF700097006FFFE08FE7CF707730705F4F50D87F4FFFDF7FFFB07F
60307FE0EF50FFD060FFE060FFFF60FFFF30DFF02FCF5FDFC78FFFC8B0905F70
1F1F60DFAFAF908F4FCFC89FAF9F6FFFCFCFFFF8FFFFF8FF0000FFF8FFF0E8EF
FFC0C0804740FFFFF0FFFFF0FFF0E0FFFFF0DFAFC0DFBF90CF8F9F2F47609067
4FD0A070F0DFCF30D07F50F8FF6FFFEF0098100FB77020B8B07FFFE050F8A000
985F40FFFF4FF0F060C0704FC0902FB0BFB0FFB0FF9FD0C0DF80FFD7CFAF6F7F
303060C0978FC0B880B09880EFCFB0E0C0BFDFCFD0F0E7EF0000F0F8F0FFFFFF
FFC7CF6F282FEFEFE0C0CFC0CFBFBFFFFFFFE0FFFFE0FFEFFFFFCFC0978FAF5F
8F9F9F60DFD880E090D00FA01F10AF907FFFF07FFFEF60FFFF50FFE03FC0800F
9F007FFFCF90F0FF2F871F5F6F306F672F709770FFB0AFAFC0A0F0C8C0BF676F
A088A0FFCFB0F0DFBFFFC0DFF0C0BFEFD8D0FFF8FFFFF8FF0000F0FFFFEFF8F0
FFC7CF6F2830F0FFFFEFFFFFFFF0FFC0C7CFCFD0BFDFC7DFFFEFFFBF98908F67
6FA0775FCFB870C0C86FD0BF7F00A0101F8F0050C06010F7CF7FBF9FFFA8DF0F
8F0000982FAFD7F050F0FF5FFFFF9FCFDF00B84FBFD880FFCFD0CFA0A0C0585F
CF98A0FFD8BFEFC8BFFFB0E0FFC7D0FFFFF0FFF0F0FFFFFF0000FFFFFFFFF8FF
B04F60FFFFFFDFC8CFE0C8CFCFC7C0FFFFFFFFF8F0FFF8FFFFF0F0C09F9F8F60
5F90705FD0B790EFD8AFFFE8FFCFC7B0DFBFC0DFC89FEFD79FCFAF90E0D790D0
B89F00880F2F9820A0CFEF5FB07F1F9F2F109700B0DF9FEFC7C0D09790AF6F6F
F0C7C0E0B8BFFFD8D0F0C8CFFFC8CFFFC8CFFFFFFFFFFFFF0000F0F7F0F0F0F0
A0475FF0EFEFEFD7D0BFA0A0DFCFCFC0B8BFD0D0CFDFD7D0D0BFC0EFCFD0C0A0
9F8F584F9F6850DFA88FFFFFCFC0C880DFD0B0EFD8C0D0B8AFE0CFC0D0C7A0E0
D8BFDFDF90C0B770FFDFD0DFD88FD0C090F0D09FFFE890FF9F8FA0676FD09890
FFD7D0FFE0DFE0B8BFF0C7C0EFC7C0FFF7FFFFFFFFFFFFFF0000F0FFFFFFF0F0
6F182FFFFFFFFFF8FFFFEFF0FFF8FFDFD0D0D0989FE0B7B0BF909FF0D7DFFFE7
E0BFA09F90776F907760C0CF70EFE8A0DFD79FE0D7B0CFBFAFDFD0AFD0C8B0BF
C090CFE84FCFD0AFEFFFBFDFD7BFDFBF90FFEF9FE0A89F9F6080CF9F9FE0AFAF
FFDFDFF0BFBFEFB8BFFFD8DFFFF8FFE0C8CFFFFFFFFFFFFF0000EFF0EFFFF8FF
7F3F4F6060609068707F585FCF989FFFF8FFFFF8F0FFF8FFFFF8FFFFEFF0FFF8
FFF0C7CFD09790A05750806750FFD7D0F0E8A0DFD09FEFE7A0C0CF6FD0D0A0CF
D790CFC09FDFDFA0BFC87FD0BFB0FFE8A0D09F9F805F40C0AF7FFFCFCFFFD0D0
EFB0B0FFCFD0FFD8DFEFC7C0E0CFCFFFF8F0FFFFFFFFFFFF0000F0FFFFFFF7F0
FFE8F0F0F8F0EFC0C0EFCFCFB0707F60585FD090908F575FB0909F7F686FFFF8
FFF0E7EFFFF7F0BFA0A09F676F905770B0986FBFA070F0E7AFFFFF9FEFE0AFFF
FFAFF0F79FFFE7BFFFFF80FFC0D09F6F5FA06F6FE08FDFFFB8B0EFC8C0FFC8CF
FFD0D0FFCFD0F0C0C0E0C0C0FFF8FFF0F7F0FFFFFFFFFFFF0000F0FFFFFFF8FF
FFF8FFF0FFFFFFD8DFFFF7F0702F30C0C7C0D0CFCFCFCFCFD0CFD0CFC0C07F6F
70BF9FA0A0707FC08F90D0AF8F80574F8F675090706F8F6860AF9770B098709F
874F8F8F60906F70804F5F906860806F5FB09F90DFC890FFD7EFF0C8CFF0C0C0
F0C7CFE0B0B0FFF7FFDFC8CFFFF7F0FFFFFFFFFFFFFFFFFF0000F0FFFFFFE8EF
FFFFFFDFF0EFFFF7FFDFCFCF6F272FF0FFFFFFF8FFFFF7FFFFF8FFDFD0D0C0BF
BFC0C0C0BFBFBFCFD0D0AF977F9F806FBF9FA0A0889080606F7F5760A080708F
675F90604FA07770C0A890B09F7F6F2F5FFFC0D0FFC8D0FFBFCFF0B8BFFFD7DF
FFD0D0F0D7D0EFD7D0FFF7F0FFFFFFF0F7F0FFFFFFFFFFFF0000EFF8FFFFF8FF
EFF7F0EFFFFFFFF0F0FFF8F07F3740E0F7EFE0FFFFEFFFFFB0BFBFFFF7F0EFDF
DFFFF8F0CFC7C0FFF8FFFFE8FFCFB8BFFFF0FFCFC7B0FFFFEFDFBFCF8F6F5F8F
5870B05F7080704FCFB0FFDFD0DF5F2F20FFD7BFFFC8C0EFC8DFFFD0D0FFC8CF
EFC0C0DFC7CFFFF8FFFFFFFFFFF7F0FFF8FFFFFFFFFFFFFF0000FFFFFFFFF8FF
FFFFFFFFFFFFFFF8FFEFE7EF50474FFFEFF0FFF8FFC0C7C0FFF7F0C0C8CFF0F0
F0EFD7DFEFF0F0C0C7C0CFCFD0CFC8D0B0B7BFDFDFEFD0CFE0C0C0DFCFC7E0D0
D0F0D0C0E0CFC8DFB0BFC0DFD8D0402F2FEFC8C0FFCFCFFFC8CFFFC7D0F0C0CF
F0D0DFFFF0F0FFFFFFFFFFFFF0F8FFF0F8FFFFFFFFFFFFFFFFFFFFF7F0FFFFFF
FFFFFFFFF8FFFFF8FFFFF8FF403030EFD8DFEFCFD0C08F90DFD8DFBF989FF0CF
D0A0989FFFCFDFFFF8FFFFF7FFF0F7F0DFDFE0FFF8FFEFE8FFD0D7E0C0C7DFC0
BFD0DFD7EFCFCFDFC0C7CFD0C8C05F3F3FFFC8CFFFD0D0FFC7CFF0C0CFEFC7CF
F0D8DFFFF0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFF8FF
FFF8FFFFF8FFFFF8FFFFF8FF3F202FFFF8FFFFC0CFDFC7C0C08890EFD0D0AF88
8FFFC0CFA09090FFF7FFD0CFCFCFC0C0C0B8BFC0C0C0DFD7DFCFC8CFCFCFD0C0
C0CFB0BFC0BFC7CFCFCFCFD0BFBF603730FFBFC0FFC0C0FFD0D0FFD8DFFFE7EF
FFF0F0FFF8FFFFF8FFF0F8FFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F7F0
FFF8FFFFF7F0FFF8FFFFF7FF5F404FFFF0F0FFFFFFFFFFFFEFFFF0F0F7EFFFFF
FFFFFFF0FFFFFFF0FFFFF0FFFFF0FFFFCFD8D0E0F8EFC0D0CFDFF0E0BFCFC0BF
D0CFCFC8CFD0D0CFDFCFCFDFB8B0704040FFD0D0F0CFD0FFF0F0FFF7F0FFF8FF
FFF8FFFFFFFFF0F8FFF0FFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFF0F0F0FFFFFF
FFFFFFFFF8FFFFF8FFFFEFEF706060806F709F575FA05F609F6F70A05F60AF5F
6F7F373FB0676F6F2F30802830802830802F308F303F8F373F903F4080303F80
3030503830402F2F50383F5F383060383FE0C7CFEFE7E0F0FFFFF0F7F0FFFFFF
FFFFFFF0F8FFF0F8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
F0F0F0F0F0F0FFFFFFFFF8FFFFF8FFFFF8FFFFF8FFEFFFFFFFF8FFFFFFFFF0F0
EFEFC0C0F0FFFFDFCFCFFFD0D0FFC7CFFFD8DFF0C0C0FFD0CFF0C7C0F0C8C0F0
C8C0FFEFEFFFDFDFFFF8F0DFC7C0FFE8EFFFF8FFF0FFFFE0FFFFF0F8FFF0FFFF
F0F8FFF0F7F0F0F8FFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFF0F0F0FFF7F0
F0F7F0FFFFFFFFFFFFEFEFEFFFF8FFFFF8FFF0FFFFFFF7FFCFEFEFFFFFFFFFF0
F0F0FFFFFFF8FFF0FFFFFFF0F0FFF8F0E0D7D0FFF8FFD0C0C0FFF8FFE0D0D0FF
F8FFF0D8DFFFE8E0FFFFFFF0EFEFFFF8FFF0EFF0FFFFFFEFF7F0FFFFFFFFFFFF
FFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFF8FFFFF8FF
EFEFEFF0FFFFE0EFEFF0FFFFF0FFFFFFFFFFFFF8FFF0FFFFFFF8FFEFF0F0FFF8
FFFFF8FFF0F0F0FFF8FFFFFFFFEFF0EFFFFFFFF0F8FFFFFFFFFFFFFFF0F7F0F0
FFFFFFF7F0FFFFFFE0F0F0EFF8FFFFF8FFFFF7FFFFF7FFFFF8FFFFFFFFFFF8FF
FFF8FFFFF8FFFFF8FFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}
end
object DsCards: TDataSource
DataSet = TbCards
Left = 8
Top = 216
end
object TbCards: TTable
TableName = 'datos\cards.db'
Left = 40
Top = 216
end
end

84
cap_gestion/crd_ctrl.h Normal file
View File

@ -0,0 +1,84 @@
//---------------------------------------------------------------------------
#ifndef crd_ctrlH
#define crd_ctrlH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <ComCtrls.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DBCtrls.hpp>
#include <Buttons.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TCardCtrl : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TImage *CardOK;
TStatusBar *StatusBar1;
TBevel *Bevel2;
TLabel *noCardFound;
TDataSource *DsCards;
TTable *TbCards;
TLabel *Label2;
TDBText *DBText1;
TLabel *Label3;
TDBText *DBText2;
TDBCheckBox *DBCheckBox1;
TLabel *Label4;
TDBLookupComboBox *DBLookupComboBox1;
TGroupBox *GroupBox1;
TDBCheckBox *DBCheckBox2;
TDBText *DBText3;
TDBText *DBText4;
TBitBtn *GrabaTarjera;
TBitBtn *BitBtn2;
TBitBtn *VerificarTarjeta;
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall GrabaTarjeraClick(TObject *Sender);
void __fastcall VerificarTarjetaClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private: // User declarations
// ------------ PARA EL GRABADOR --------------
int PuertoE;
int cb_PosP, cb_LenP;
int cb_PosC, cb_LenC;
int cb_PosR, cb_LenR;
int cb_PosFd, cb_LenFd;
int cb_PosFh, cb_LenFh;
HANDLE LM_handle;
int __fastcall AbrePuerto(LPTSTR lpszPortName);
char * __fastcall ObtenerRespuesta( char *rcv );
char * __fastcall EnviaCMD1( char *CMD, char *rcv, char mlen );
char * __fastcall EnviaCMD( char *CMD, char *rcv );
char __fastcall CalculaBCC( char *cadena );
// ---------- FIN PARA EL GRABADOR ------------
char * __fastcall ObtenCadenaTarjeta(char *dev);
public: // User declarations
void __fastcall CierraPuerto(void);
char * __fastcall LeeTarjeta( char *rcv );
char * __fastcall EscribeTarjeta( char *datos, char *rcv );
__fastcall TCardCtrl(TComponent* Owner);
int __fastcall LocateCard( int idc, int owner );
bool LM_opened, statusOK;
int IDcard;
};
//---------------------------------------------------------------------------
extern PACKAGE TCardCtrl *CardCtrl;
//---------------------------------------------------------------------------
#endif

BIN
cap_gestion/eabonados.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cap_gestion/eabonados.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
cap_gestion/escribir.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
cap_gestion/euro.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
cap_gestion/fabonados.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cap_gestion/fabonados.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
cap_gestion/gabonados.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cap_gestion/gabonados.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
cap_gestion/images.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

BIN
cap_gestion/indalo.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
cap_gestion/jd.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
cap_gestion/portada.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
cap_gestion/tabonado.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
cap_gestion/tabonados.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
cap_gestion/tickets.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

609
cap_gestion/tickets.cpp Normal file
View File

@ -0,0 +1,609 @@
//---------------------------------------------------------------------------
#include <inifiles.hpp>
#include <vcl\Clipbrd.hpp>
#include <vcl.h>
#pragma hdrstop
#include "tickets.h"
#include "crd_ctrl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "DigitNum"
#pragma resource "*.dfm"
TfTickets *fTickets;
//---------------------------------------------------------------------------
__fastcall TfTickets::TfTickets(TComponent* Owner)
: TForm(Owner)
{
ticketE = new TStringList;
ticketS = new TStringList;
Height = 290;
TbTickets->Active = false;
TbVentas->Active = true;
TbPrecios->Active = true;
// Cargar la configuraci<63>n de LMs
AnsiString E, S;
TIniFile *ini;
ini = new TIniFile( ExtractFileDir( Application->ExeName ) + "\\CAP.INI" );
// General
E = ini->ReadString( "CAP_c", "IDsLegoE", "1;" );
S = ini->ReadString( "CAP_c", "IDsLegoS", "2;" );
precioInicial=ini->ReadFloat( "CAP_g", "precioInicial", 0.0 );
precioMinuto= ini->ReadFloat( "CAP_g", "precioMinuto", 0.0 );
// Ticket de entrada
int i;
AnsiString cab,key;
ticketE->Clear();
i=1;
while(1){
key=AnsiString("cab")+AnsiString(i);
cab=ini->ReadString("ticketE",key,"<<EOF>>");
if ( cab!="<<EOF>>" )
ticketE->Add(cab);
else
break;
i++;
}
// Ticket de salida
ticketS->Clear();
i=1;
while(1){
cab=ini->ReadString("ticketS",AnsiString("cab")+AnsiString(i),"<<EOF>>");
if ( cab!="<<EOF>>" )
ticketS->Add(cab);
else
break;
i++;
}
delete ini;
int *ID, nL;
ObtenDirLEGOS( E, nL, &ID );
for ( i=0; i<nL; i++ ) ComboBox1->Items->Add( "Entrada ;O"+AnsiString( ID[i] ) );
ObtenDirLEGOS( S, nL, &ID );
for ( i=0; i<nL; i++ ) ComboBox1->Items->Add( "Salida ;O"+AnsiString( ID[i] ) );
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::ObtenDirLEGOS(AnsiString cadena, int &nLEGOS, int **ID)
{
char *pDir, buff[80], *pbuff;
nLEGOS = 0; int i = 1, j=0;
while ( i <= cadena.Length() )
{
if ( cadena[i] == ';' ) nLEGOS++;
i++;
}
(*ID) = new int[nLEGOS];
i = 1; pbuff = buff;
while ( i <= cadena.Length() )
{
if ( cadena[i] == ';' )
{
*pbuff = '\0';
try {
(*ID)[j++] = AnsiString( buff ).ToInt();
} catch(...) {
nLEGOS--;
ShowMessage( "La configuraci<63>n de direcciones LEGO'S es incorrecta" );
}
pbuff = buff; i++;
}else{
*(pbuff++) = cadena[i];
i++;
}
}
}
//---------------------------------------------------------------------------
int __fastcall TfTickets::NDias( TDateTime E, TDateTime S )
{
int dS, dE;
dE = E;
dS = S;
return ( S-E );
}
//---------------------------------------------------------------------------
int __fastcall TfTickets::NMinutos( TDateTime hE, TDateTime hS )
{
unsigned short HH, MM, SS, MS;
int RetroDias = 1, MinutosDentro = 0;
TDateTime TD;
if ( hS < hE )
{
TDateTime S(00,00,00,00);
RetroDias = -1;
TD = (S - hE) + hS;
} else {
TD =(hS - hE);
}
TD.DecodeTime( &HH, &MM, &SS, &MS );
MinutosDentro = HH*60 + MM;
return (MinutosDentro * RetroDias);
}
//---------------------------------------------------------------------------
int __fastcall TfTickets::obtenerTicket(void)
{
int pref, upref, cont;
upref=0;
sql->SQL->Clear();
sql->SQL->Add("SELECT Prefijo,Contador FROM 'datos\\contadores' WHERE Id=1");
sql->Active=true;
cont = sql->FieldByName("Contador")->AsInteger;
if ( cont>1000 ) upref=1;
pref = sql->FieldByName("Prefijo")->AsInteger+upref;
sql->SQL->Clear();
sql->SQL->Add("UPDATE 'datos\\contadores' SET Prefijo="+AnsiString(pref)+",Contador="+AnsiString(cont+1)+" WHERE Id=1" );
sql->ExecSQL();
return ( pref*1000 + cont );
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::BitBtn1Click(TObject *Sender)
{
TbTickets->Active = true;
int NTicket;
if ( Edit1->Text.IsEmpty() )
{
TDateTime fE = fE.CurrentDate();
TDateTime hE = hE.CurrentTime();
TbTickets->Insert();
TbTickets->FieldByName("fechaE")->AsDateTime = fE;
TbTickets->FieldByName("horaE")->AsDateTime = hE;
TbTickets->FieldByName("puedeSalir")->AsBoolean = false;
TbTickets->Post();
if ( RadioGroup1->ItemIndex==0 )
{
NTicket = TbTickets->FieldByName("id")->AsInteger;
NTicket = (NTicket<<1)+1;
TbTickets->Edit();
TbTickets->FieldByName("Ticket")->AsInteger = 0;
TbTickets->FieldByName("idCard")->AsInteger = NTicket;
TbTickets->Post();
if ( !GrabaTarjeta(NTicket) )
TbTickets->Delete();
else
ShowMessage( "N<EFBFBD> de Ticket: "+AnsiString( NTicket ) );
} else {
NTicket = obtenerTicket();
TbTickets->Edit();
TbTickets->FieldByName("Ticket")->AsInteger = NTicket;
TbTickets->FieldByName("idCard")->AsInteger = 0;
TbTickets->Post();
//Currency pvp,int mm,TDateTime fechaE,TDateTime fechaS
//
ticket_Imprimir(NTicket,'E', 0, 0,
TbTickets->FieldByName("fechaE")->AsDateTime+TbTickets->FieldByName("horaE")->AsDateTime,
0 );
}
// #############
Height = 290;
} else {
// Buscar ticket y mostrar sus datos...
try {
// CAMBIADO 30/ABRL/2002
// NTicket = ( Edit1->Text.ToInt() ) >> 1;
// if ( TbTickets->Locate( "id", NTicket, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
AnsiString fieldKey;
NTicket = Edit1->Text.ToInt();
if ( RadioGroup1->ItemIndex==0 ) fieldKey = "idCard"; else fieldKey = "Ticket";
if ( TbTickets->Locate( fieldKey, NTicket, TLocateOptions() << loCaseInsensitive ) )
{
TDateTime TD; Currency Coste;
int DiasDentro, MinutosDentro;
DiasDentro = NDias( TbTickets->FieldByName("fechaE")->AsDateTime, TDateTime::CurrentDate() );
MinutosDentro = NMinutos( TbTickets->FieldByName("horaE")->AsDateTime, TDateTime::CurrentTime() );
if ( MinutosDentro < 0 )
{
MinutosDentro = MinutosDentro*(-1);
DiasDentro--;
}
Coste = CalculaCoste( MinutosDentro, DiasDentro );
int VDig = Coste*100;
DigitNum1->Value = VDig / 100;
DigitNum2->Value = VDig - ( (VDig / 100)*100 );
Label4->Caption = TDateTime::CurrentTime();
Label5->Caption = TDateTime::CurrentDate();
Label3->Caption = AnsiString( DiasDentro ) + " Dias y " + AnsiString( MinutosDentro ) + " minutos.";
Label6->Caption = TbTickets->FieldByName("fechaE")->AsDateTime;
Label7->Caption = TbTickets->FieldByName("horaE")->AsDateTime;
Height = 370;
}
} catch(...) {
ShowMessage( "El formato del Ticket, es incorrecto" );
}
}
TbTickets->Active = false;
}
//---------------------------------------------------------------------------
Currency __fastcall TfTickets::CalculaCoste( int Minutos, int Dias )
{
Minutos = Minutos+(24*60*Dias);
return precioMinuto*Minutos+precioInicial;
Currency MM = 0, DD = 0;
TbPrecios->First();
while ( ! TbPrecios->Eof )
{
if ( Minutos <= TbPrecios->FieldByName("Tiempo")->AsInteger )
{
MM = TbPrecios->FieldByName("Precio")->AsCurrency;
break;
}
TbPrecios->Next();
}
if ( Dias > 0 )
{
Dias += 9000;
TbPrecios->First();
while ( ! TbPrecios->Eof )
{
if ( Dias <= TbPrecios->FieldByName("Tiempo")->AsInteger )
{
DD = TbPrecios->FieldByName("Precio")->AsCurrency;
break;
}
TbPrecios->Next();
}
}
return ( DD + MM );
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::BitBtn2Click(TObject *Sender)
{
bool emitir=true;
if ( Edit1->Text.IsEmpty() ) return;
TbTickets->Active = true;
AnsiString fieldKey;
if ( RadioGroup1->ItemIndex==0 ) fieldKey = "idCard"; else fieldKey = "Ticket";
if ( TbTickets->Locate( fieldKey, Edit1->Text, TLocateOptions() << loCaseInsensitive << loPartialKey ) )
{
emitir = !TbTickets->FieldByName("PuedeSalir")->AsBoolean;
if ( !emitir )
{
// emitir = ( MessageDlg("El ticket "+Edit1->Text+" ya ha sido cobrado. \n <20>Volver a cobrar ahora?",mtInformation, TMsgDlgButtons() << mbYes << mbNo, 0)==mrYes);
ShowMessage("Este ticket ya ha sido cobrado!");
}
if ( emitir )
{
// Imprimimos <20>Ticket PAGADAO?
//ShowMessage( "Aqui deber<65>a imprimirse el comprobante de pago" );
TbTickets->Edit();
TbTickets->FieldByName("PuedeSalir")->AsBoolean = true;
TbTickets->Post();
// Insertamos la venta...
Currency Importe;
Importe = (Currency)(DigitNum1->Value * 100 + DigitNum2->Value ) / 100;
TbVentas->Insert();
TbVentas->FieldByName("idc")->AsInteger = -1; // Cliente ocacional
TbVentas->FieldByName("fechaE")->AsDateTime = TbTickets->FieldByName("fechaE")->AsDateTime;
TbVentas->FieldByName("horaE")->AsDateTime = TbTickets->FieldByName("horaE")->AsDateTime;
TbVentas->FieldByName("fechaS")->AsDateTime = TDateTime::CurrentDate();
TbVentas->FieldByName("fechaP")->AsDateTime = TDateTime::CurrentDate();
TbVentas->FieldByName("horaS")->AsDateTime = TDateTime::CurrentTime();
TbVentas->FieldByName("importe")->AsCurrency = Importe;
TbVentas->FieldByName("pagado")->AsBoolean = true;
TbVentas->Post();
//Currency pvp,int mm,TDateTime fechaE,TDateTime fechaS
//
int DiasDentro, MinutosDentro;
DiasDentro = NDias( TbVentas->FieldByName("fechaE")->AsDateTime, TbVentas->FieldByName("fechaS")->AsDateTime );
MinutosDentro = NMinutos( TbVentas->FieldByName("horaE")->AsDateTime, TbVentas->FieldByName("horaS")->AsDateTime );
if ( MinutosDentro < 0 )
{
MinutosDentro = MinutosDentro*(-1);
DiasDentro--;
}
if ( MessageDlg("<EFBFBD>Imprimir Ticket?",mtInformation, TMsgDlgButtons() << mbYes << mbNo, 0)==mrYes)
ticket_Imprimir(TbTickets->FieldByName("idCard")->AsInteger,'S', Importe, DiasDentro*1000+MinutosDentro,
TbVentas->FieldByName("fechaE")->AsDateTime+TbVentas->FieldByName("horaE")->AsDateTime,
TbVentas->FieldByName("fechaS")->AsDateTime+TbVentas->FieldByName("horaS")->AsDateTime );
// TbTickets->Delete();
}
} else ShowMessage( "Ticket no encontrado" );
TbTickets->Active = false;
// Cobrar
Edit1->Text = "";
DigitNum1->Value = 0;
DigitNum2->Value = 0;
Height = 290;
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::ComboBox1Change(TObject *Sender)
{
// Mandamos el mensaje de selecci<63>n al PortaPapeles...
AnsiString Bra = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
Bra = "JDsoft:" + Bra.SubString( Bra.Length()-4, Bra.Length() );
Clipboard()->SetTextBuf( Bra.c_str() );
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::Edit1KeyPress(TObject *Sender, char &Key)
{
if ( !Edit1->Text.IsEmpty() && Key == VK_RETURN )
BitBtn1Click( 0 );
}
//---------------------------------------------------------------------------
bool __fastcall TfTickets::GrabaTarjeta(int ID)
{
bool dev = false;
TCardCtrl *CCard;
CCard = new TCardCtrl(this);
char buf[80];
CCard->IDcard = ID;
CCard->GrabaTarjeraClick(0);
dev = CCard->statusOK;
if ( !dev )
{
ShowMessage( "ERROR DE GRABACION" );
}
/*
CCard->LeeTarjeta(buf);
ShowMessage( AnsiString(buf) );
*/
if ( CCard->LM_opened ) CCard->CierraPuerto();
delete CCard;
return dev;
}
//---------------------------------------------------------------------------
//###########################################################################
void __fastcall TfTickets::ticket_Imprimir(int idt,char tipo,Currency pvp,int mm,TDateTime fechaE,TDateTime fechaS)
{
//ShowMessage( "N<> de Ticket: "+AnsiString( idt ) );return;//BORRAME CUANDO ESTE LISTO
Currency Importe;
Importe = (DigitNum1->Value * 100 + DigitNum2->Value ) / 100;
TStringList *ticket;
ticket = (tipo=='E'?ticketE:ticketS);
hCom = ticket_AbrirPuerto("LPT1");
int i;
double sump=0;
// Nothing
// Generamos la cabecera
ticket_writeCOM( "\n" );
for ( i=0; i<ticket->Count; i++ )
{
ticket_writeCOM( ticket_parsearLinea(ticket->Strings[i],idt,pvp,mm,fechaE,fechaS) );
ticket_writeCOM( "\n" );
}
ticket_CerrarPuerto();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfTickets::ticket_parsearLinea(AnsiString linea, int idt, Currency pvp,int mm, TDateTime fechaE, TDateTime fechaS)
{
AnsiString dev;
// Esto ser<65> un "simple", buscar y reemplazar...
// dev = SearchAndReplace( linea, "[fecha]", DateTimePicker1->Date.DateString() );
dev = ticket_SearchAndReplace( linea, "{idt}", AnsiString(idt) );
dev = ticket_SearchAndReplace( dev, "{pvp}", FormatCurr( "##,###,##0.#0",pvp) );
dev = ticket_SearchAndReplace( dev, "{mm}", mm );
dev = ticket_SearchAndReplace( dev, "{fechaE}", fechaE.DateTimeString() );
dev = ticket_SearchAndReplace( dev, "{fechaS}", fechaS.DateTimeString() );
return dev;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfTickets::ticket_SearchAndReplace(AnsiString l, AnsiString s, AnsiString r )
{
AnsiString dev;
int i;
// Buscamos s en l
i = l.Pos(s);
if ( i>0 )
dev = l.SubString(1,i-1) + r + l.SubString(i+s.Length(),l.Length());
else
dev = l;
return dev;
}
//---------------------------------------------------------------------------
bool __fastcall TfTickets::ticket_writeCOM(AnsiString output)
{
char string[255], *p;
string[0]='\0';
if ( output.data() != NULL )
{
// Esto deber<65>a estar en el parser
strcpy( string, (char *)output.data() );
do {
p = StrPos(string,"{r}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='r'; p[2]='1'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{n}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='r'; p[2]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{fc}");
if ( p!=NULL )
{ p[0]=(char)0x1D; p[1]='V'; p[2]=66; p[3]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{F1}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='!'; p[2]=16+1+32; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{F}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='!'; p[2]=17; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{f}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='!'; p[2]=0x01; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{B}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='E'; p[2]=1; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{b}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='E'; p[2]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{E}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='E'; p[2]=1; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{e}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='E'; p[2]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{fA}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='M'; p[2]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{fB}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='M'; p[2]=1; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{fC}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='M'; p[2]=2; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{L}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='a'; p[2]='0'; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{C}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='a'; p[2]=1; } else break;
} while( p!=NULL );
do {
p = StrPos(string,"{R}");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='a'; p[2]=2; } else break;
} while( p!=NULL );
/*
do {
p = StrPos(string,"[P]");
if ( p!=NULL )
{ p[0]=(char)0x1B; p[1]='a'; p[2]=2; } else break;
} while( p!=NULL );
*/
for ( p=string; *p!='\0'; p++ )
if ( *p == (char)0xFF ) *p='\0';
}
unsigned long int wt;
// return WriteFile( hCom,output.c_str(),output.Length(),&wt,NULL);
//ShowMessage( string );
return WriteFile( hCom,string,output.Length(),&wt,NULL);
}
//---------------------------------------------------------------------------
HANDLE __fastcall TfTickets::ticket_AbrirPuerto(char *puerto)
{
HANDLE hCom;
hCom = CreateFile( puerto,
GENERIC_READ | GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // comm devices must use OPEN_EXISTING
0, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);
if ( puerto[0]!='L' )
if (hCom != INVALID_HANDLE_VALUE)
{
DCB dcb;
// We will build on the current configuration, and skip setting the size
// of the input and output buffers with SetupComm.
if ( GetCommState(hCom, &dcb) )
{
// Fill in the DCB: baud=57,600 bps, 8 data bits, no parity, and 1 stop bit.
dcb.BaudRate = CBR_9600; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit
if ( !SetCommState(hCom, &dcb) )
CloseHandle( hCom );
}
}
return hCom;
}
//---------------------------------------------------------------------------
void __fastcall TfTickets::ticket_CerrarPuerto(void)
{
CloseHandle( hCom );
}
//---------------------------------------------------------------------------
//###########################################################################
void __fastcall TfTickets::FormDestroy(TObject *Sender)
{
delete ticketE;
delete ticketS;
}
//---------------------------------------------------------------------------

BIN
cap_gestion/tickets.ddp Normal file

Binary file not shown.

539
cap_gestion/tickets.dfm Normal file
View File

@ -0,0 +1,539 @@
object fTickets: TfTickets
Left = 612
Top = 131
AutoScroll = False
Caption = 'cap-ges: tickets'
ClientHeight = 343
ClientWidth = 349
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010001002020000001000800A80800001600000028000000200000004000
0000010008000000000080040000000000000000000000010000000000000000
0000FFFFFF0052A4FF000041A0000051A00059C5FF0058C5FF0060C7FF005EC6
FF005DC6FF005BC6FF0068C9FF0068C8FF0067C8FF0064C7FF0061C7FF006BCA
FF0073CBFF0074CBFF0072CBFF006FCAFF0069C8FF007CCDFF0081CEFF007FCE
FF007ACCFF00CEFFFF005299FF0071CAFF008ACFFF0091D1FF0091D2FF008DD1
FF0088CFFF006363310079CCFF0084CFFF0096D3FF009BD4FF00639C31002121
210083CFFF008FD1FF009AD3FF00A2D5FF00ADADAD00737373008AD0FF0097D2
FF00AAD6FF009DD4FF00233D63000000F0000000800000800000008080008000
00008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF00
0000FF00FF00FFFF000006060600121212001F1F1F002C2C2C00393939004545
4500525252005F5F5F006C6C6C007878780085858500929292009F9F9F00ABAB
AB00B8B8B800C5C5C500D2D2D200DEDEDE00EBEBEB00F8F8F800F0FBFF00A4A0
A000C0DCC000F0CAA60000003E0000005D0000007C0000009B000000BA000000
D9002424FF004848FF006C6CFF009090FF00B4B4FF0000143E00001E5D000028
7C0000329B00003CBA000046D9000055F000246DFF004885FF006C9DFF0090B5
FF00B4CDFF00002A3E00003F5D0000547C0000699B00007EBA000093D90000AA
F00024B6FF0048C2FF006CCEFF0090DAFF00B4E6FF00003E3E00005D5D00007C
7C00009B9B0000BABA0000D9D90000F0F00024FFFF0048FFFF006CFFFF0090FF
FF00B4FFFF00003E2A00005D3F00007C5400009B690000BA7E0000D9930000F0
AA0024FFB60048FFC2006CFFCE0090FFDA00B4FFE600003E1400005D1E00007C
2800009B320000BA3C0000D9460000F0550024FF6D0048FF85006CFF9D0090FF
B500B4FFCD00003E0000005D0000007C0000009B000000BA000000D9000000F0
000024FF240048FF48006CFF6C0090FF9000B4FFB400143E00001E5D0000287C
0000329B00003CBA000046D9000055F000006DFF240085FF48009DFF6C00B5FF
9000CDFFB4002A3E00003F5D0000547C0000699B00007EBA000093D90000AAF0
0000B6FF2400C2FF4800CEFF6C00DAFF9000E6FFB4003E3E00005D5D00007C7C
00009B9B0000BABA0000D9D90000F0F00000FFFF2400FFFF4800FFFF6C00FFFF
9000FFFFB4003E2A00005D3F00007C5400009B690000BA7E0000D9930000F0AA
0000FFB62400FFC24800FFCE6C00FFDA9000FFE6B4003E1400005D1E00007C28
00009B320000BA3C0000D9460000F0550000FF6D2400FF854800FF9D6C00FFB5
9000FFCDB4003E0000005D0000007C0000009B000000BA000000D9000000F000
0000FF242400FF484800FF6C6C00FF909000FFB4B4003E0014005D001E007C00
28009B003200BA003C00D9004600F0005500FF246D00FF488500FF6C9D000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000340000000000
0000000000000000000000000000000000000000000000000000340000000000
0000000000000000000000000000000000000000000000000000340000000000
0000000000000000000000000000000000000000000000000000340000000000
0000000000000000000000000000000000000000000000000000340000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000033
1B00000000000000000000000000000000000000000000000000000000000033
1B1B1B0000000000000000000000000000000000000000000000000000000000
331B041B1B000000000000000000000000000000000000000000000000000000
00041B04041B1B0000000000001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A000000
00041B2A3204041B1B000000001A22222222222222222222222222221A000000
00041B2F302C3100001B1B00001A221A27271A1A2E281A1A27271A221A000000
00041B292A2B2C000000041B001A221A1A271A2D2D2E1A1A271A1A221A000000
031B1B232400250000002604001A22271A1A1A2728281A1A1A1A27221A00031B
041B0C1C19001D001E1F2021001A22222222222222222222222222221A000003
020404151400160017171819001A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A000000
0002020404100000111213140000000000000000000000000000000000000000
00000002020400000B0C0D0E0F04020000000000000000000000000000000000
0000000000020200040708090A04020000000000000000000000000000000000
0000000000000002020404050604020000000000000000000000000000000000
0000000000000000000202040402020000000000000000000000000000000000
0000000000000000000000020202030000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000FFFF
FFFFFFFFFFFFFFFFFFFF99346633992CE7B1990C66309F1CE6F1092C4233FFFF
FFFFFFFFFFFFFFFFFFFF9FFFFFFF07FFFFFF01FFFFFF807C0000C01C0000C004
0000C0000000C000000000000000000000000000000080000000E0003FFFF800
3FFFFE003FFFFF803FFFFFE03FFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFF}
OldCreateOrder = False
Position = poScreenCenter
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object Bevel2: TBevel
Left = 0
Top = 49
Width = 349
Height = 294
Align = alClient
end
object Bevel3: TBevel
Left = 24
Top = 264
Width = 321
Height = 9
Shape = bsBottomLine
end
object Label2: TLabel
Left = 112
Top = 288
Width = 10
Height = 20
Caption = '--'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label3: TLabel
Left = 8
Top = 320
Width = 48
Height = 20
Caption = 'Label3'
Font.Charset = DEFAULT_CHARSET
Font.Color = clGreen
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label4: TLabel
Left = 128
Top = 280
Width = 48
Height = 20
Caption = 'Label4'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label5: TLabel
Left = 128
Top = 296
Width = 48
Height = 20
Caption = 'Label4'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label6: TLabel
Left = 8
Top = 280
Width = 48
Height = 20
Caption = 'Label4'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object Label7: TLabel
Left = 8
Top = 296
Width = 48
Height = 20
Caption = 'Label4'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
end
object DigitNum1: TDigitNum
Left = 8
Top = 56
Width = 217
Height = 153
Brush.Style = bsClear
MaxLength = 3
end
object DigitNum2: TDigitNum
Left = 232
Top = 56
Width = 113
Height = 81
Brush.Style = bsClear
MaxLength = 2
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 349
Height = 49
Align = alTop
BevelOuter = bvNone
TabOrder = 0
object Label1: TLabel
Left = 0
Top = -4
Width = 138
Height = 45
Caption = 'Tickets'
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -32
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
end
object Bevel1: TBevel
Left = 0
Top = 32
Width = 185
Height = 9
Shape = bsBottomLine
end
object CardOK: TImage
Left = 0
Top = 0
Width = 24
Height = 24
AutoSize = True
Picture.Data = {
07544269746D617096010000424D960100000000000076000000280000001800
0000180000000100040000000000200100000000000000000000100000000000
000000000000000080000080000000808000800000008000800080800000C0C0
C000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
FF00FFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFFF991FFFFFFFFFFFFFFFFFFFFF
991100000FFFFFFF00000000099110880FFF0000888888888001108800FF8888
888888888880088808FF88888888888888888888080F88888888888888888888
080B88888888888888888888080B888888888000000000008801888800000777
7777777808010000FFFFF777777777788001FFFFFFF77777FFF00000000BFFFF
FF777000000BBBBBBBBBFF7700000BBBBBBBBB111111000077BBBBBB111111BB
BBBB777700BB1111BBBBBBBBBBBB0000FFBBBBBBBBBBB33BBBBBFFFFFFB33BBB
3BBBB33BBB3BFFFFFFBB3BB33B3BBBBBBBBBFFFFFFB33BBBBBB3BBBBBBBBFFFF
FFB33BBBBBBBBBBBFFFFFFFFFFBBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFF}
Visible = False
end
object RadioGroup1: TRadioGroup
Left = 192
Top = 0
Width = 153
Height = 49
Caption = 'NO Clientes'
ItemIndex = 1
Items.Strings = (
'Usar Tarjetas Magn'#233'ticas'
'Usar Tickets')
TabOrder = 0
end
end
object BitBtn1: TBitBtn
Left = 232
Top = 176
Width = 113
Height = 81
Caption = 'Expender / Buscar'
TabOrder = 1
OnClick = BitBtn1Click
Glyph.Data = {
26140000424D26140000000000003604000028000000430000003C0000000100
080000000000F00F00000000000000000000000100000000000065A1AB005FE6
E1007FE2E20099E6E900000000009398A00039A7AC00C9CAD000A6AAB100B3EB
F100295B67007EBCC500E8E9EB0026858C00C5E0EA00DBE7F100E2E0E500FFFF
FF00F7E2F800B8BBC100E1EFFA00FAE5ED0082858C00AEDCE40057C2C600CBED
F500D6D6DB00CBACC6009ACAD400C7EDD800567C8800EFEFF200000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000111111111111
11111111111111111111110C101A100C1F111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111001111
1111111111111111111111111111111A13081313070C1F111111111111111111
1111111111111111111111111111111111111111111111111111111111111111
1100111111111111111111111111111111111F1A0505161616131A1011111111
1111111111111111111111111111111111111111111111111111111111111111
111111111100111111111111111111111111111111111A1A071316160A161608
071A101F11111111111111111111111111111111111111111111111111111111
111111111111111111001111111111111111111111111111111F13081305111A
050A1E160508131A100C11111111111111111111111111111111111111111111
111111111111111111111111110011111111111111111111111111111F1A1316
05080C1F0816051616050513071A0C1111111111111111111111111111111111
11111111111111111111111111111111110011111111111111111111110C0C07
13081F1F0708070C1F1608130C1A08161616050813070C0C1111111111111111
1111111111111111111111111111111111111111110011111111111111111111
0C101A080507131F1F0716101F0505131A1F15001616050508131A101F111111
1111111111111111111111111111111111111111111111111100111111111111
1111110C1A1313131110161A0C1416081F0705081A101A0F190B051616160813
07100C1111111111111111111111111111111111111111111111111111001111
11111111110C100708080508081A08130C1F0A16071F0805131A1C0F17181C1C
000516160513071A0C1111111111111111111111111111111111111111111111
1100111111111F0C101313160C08051316071F100C1F130A081F0C0508180B17
17050608080D1207001616050807070C0C111111111111111111111111111111
111111111100111111111A1A13050F11051F070C0707100C0C0C0C07160C1F1A
16131B02170E0D0D00021703000705160505080707100C111111111111111111
111111111111111111001111110C0713080707131013130813080C0C0C0C120F
0510100C050805181C1206000802031C161C1708161605081307100C11111111
111111111111111111111111110011110C1A1F0C1F051A13131308081B100C0C
15151F140C0C0C1F131E1E1A090B0803181C180606000301120E170816160505
08131A100C111111111111111111111111001111130C0C1F0C0810081F1F1005
121A1F0C0C0C0C150C1F1F0C1905000717011901060018030E050F020F090203
1702161605050813070C0C111111111111111111110011111F130C0C1F1A0807
1F1F1F1B05080C0C1F1F0C1F1F150C0F090B1E071C0117011C0B070707071401
17030203030E0B16161605081307100C11111111111111111100111111111A1F
0C1F100C1F101F160507140C0C0C0C140E0F02010F0E1A000808180B08020B02
031C001409021A01010E01021C030E0B1616050513071A0C1F11111111001111
11111B1F1F0F0C1F1F0C1F0505111A1F190C0C1D0E101C03031C1C0000050602
0B0108021C0F021202021A0102030203170909010916161605131310100C1111
11001111111116081F1F0C0C0C0C1F191115081F1515020201081803000D1E0D
060B0B0603191C1E1308180F0202020F0E03141A02021C01020B170516160508
1307101F1100111111111A08100C0C1F1F1F0C1F111E1A130202121402180D02
1C08000016001A1317031C00020D0600170F14151F0117030101021717171E09
1C05161605050710110011111111110C0C0C1F0C0C0C0C1511070E0E01010101
02121C06010A0A1B1C0D080B180B1803190B160B0F1E001C0B0219030F0F030F
17060A0D03021D0E1C1605070C001111111111110C0C0C0C0C0C1F1D03020312
03030101090301001C180B18021E0A0D1B130311171819061C06171C08071C02
0F0F01170003131E0F0217030117071A11001111111111110C0C0C19151F1F17
010203190203030302030108070B08181805050A16161C1C08181C02020B170B
001A1C01031C01020B0B171C1902020301171A1A110011111111111111150C0C
1A0303190902090F010201010908171C061C17030B060D0D0B0B0A0816130605
080606021C0B140F1C02001818090218170F0F1D19101A1F1100111111111111
11101902190909030101191F03030101191C0B08060B1C180B16081E08001600
0B0706180B1C0617120E191301020B180B17021717120F0E19101A1111001111
11111111110C1C01091909031701090E01030E02030D0D10141E18061E1E1705
00060000180006000B05070F120B021C0102061E1600070E020F0902021A0C11
110011111111111111110F0E010201140F010F030109010211171C0101171317
180601100D1E1C170706050E0D05080B0B1C1C1C16051C1C000A010302020315
1007111111001111111111111111111C190C0F030102120F0B0B0602070B090F
0B09090B081001090516060B0E181702000B1805001E1618020E060202090E0E
0F1717101A1A111111001111111111111111110E090E021903010E010100170D
010B0E1E1C0D17181703030903160D0D08020B1C101C060518181C061C1C1A0F
011002020902021A071011111100111111111111111111110201011214030101
010D1C0000181C070A07090D0B02031209170A1E0B0803171217180001021C16
080012120112020103020207070C11111100111111111111111111111D11020D
061C1B0B0317060207060303180D0D0912140E0101010A1E0603010618000509
1F10020B00061C03021719120219101A10111111110011111111111111111111
11171C090B0000180E14021C06181A170005051A0901170F0903061E1E1C130E
1C16170B0B090117021C02090F1C0319021717101F1111111100111111111111
11111111111717001B1E0A0B13140D1B001C13160916161801010E14190E0116
050B05130B0B0018060B02171714021A1902020902021A0C1111111111001111
11111111111111111111111818060B06050803190D1808000D0118171C170902
02020102000D0000171E18130B00080D01010203020F0F020C1A071111111111
1100111111111111111111111111111C1E03061C1607030306181A0B0D1C031E
1E18100C010301010B0D13080C0901161818000602020909171009021D1A0711
11111111110011111111111111111111111111100203061E1B050319050B0D06
1B130E1C031814190203010119050818070B0117180B001314091215010E0202
1C131A111111111111001111111111111111111111111119021603161E160817
011E1E000B011808130B1C0201171A02090808071A091918060818170E010217
170902121A1A1F1111111111110011111111111111111111111111111402061C
1B1B0B00011C17030B0B18000606120917030103190905130C111103031C1C02
0309171714170109070C11111111111111001111111111111111111111111111
11191E030000071B0706010608000B0918180B03021903010E010B081A0C1111
111F0E09021A0202020202171A1F111111111111110011111111111111111111
11111111110C050B1C06131A000B180D05001C121C001C01030E0E0102020305
070C1111111119031C01020202020E141A111111111111111100111111111111
1111111111111111111102001D141C06060703180A0B0B0201021208021C0103
111C001708071A11111111111111110F1D021007111111111111111111001111
1111111111111111111111111111171D0301080E1818021807050D0101021C18
001E011003021708081307111111111111111111111C171F1111111111111111
110011111111111111111111111111111111111718181B1E160B03010D011807
0B18010119120000180D0A1C0808131111111111111111111111111111111111
111111111100111111111111111111111111111111111111190B020618001702
0B0018181800070D180103141B171E0A090808100C1111111111111111111111
1111111111111111110011111111111111111111111111111111111109021919
0D00181C1F1802001819180B1C08170900021613010B051A1011111111111111
1111111111111111111111111100111111111111111111111111111111111111
11030809010A0D180101061E1617060116050B0B1C06140219121A131A0C1111
1111111111111111111111111111111111001111111111111111111111111111
1111111111110303021C181E03030318060B1F010201191203030E0103030213
1A1F111111111111111111111111111111111111110011111111111111111111
1111111111111111111115051C0D180509170E06180601031214021701091219
0301011A10111111111111111111111111111111111111111100111111111111
11111111111111111111111111110302060F05180603190B0209020312031909
02090301190F0E10111111111111111111111111111111111111111111001111
1111111111111111111111111111111111111902001C16181803090303190203
03011F1F1903010114100F111111111111111111111111111111111111111111
1100111111111111111111111111111111111111111111111D18021901091902
030202190F0F0202011915101111111111111111111111111111111111111111
111111111100111111111111111111111111111111111111111111111F0F0209
010F140317020109140F0902020C101F11111111111111111111111111111111
1111111111111111110011111111111111111111111111111111111111111111
11090217020F14020F1903030201141F170C1111111111111111111111111111
1111111111111111111111111100111111111111111111111111111111111111
11111111111D021517090917190202140F0E0C1F111111111111111111111111
1111111111111111111111111111111111001111111111111111111111111111
111111111111111111111701011214010102170C1A1A11111111111111111111
1111111111111111111111111111111111111111110011111111111111111111
111111111111111111111111111119090109030312191C191111111111111111
1111111111111111111111111111111111111111111111111100111111111111
111111111111111111111111111111111111111D0212090C0F0C111111111111
1111111111111111111111111111111111111111111111111111111111001111
111111111111111111111111111111111111111111111111021D1D070C111111
1111111111111111111111111111111111111111111111111111111111111111
11001111111111111111111111111111111111111111111111111111020E0C11
1111111111111111111111111111111111111111111111111111111111111111
1111111111001111111111111111111111111111111111111111111111111111
1D0C111111111111111111111111111111111111111111111111111111111111
11111111111111111100}
Layout = blGlyphTop
end
object BitBtn2: TBitBtn
Left = 232
Top = 280
Width = 113
Height = 57
Caption = 'Cobrar'
TabOrder = 2
OnClick = BitBtn2Click
Glyph.Data = {
8E030000424D8E03000000000000760000002800000042000000160000000100
04000000000018030000C40E0000C40E00001000000000000000000000000000
80000080000000808000800000008000800080800000C0C0C000808080000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00DDDDDD777777
7777777777DDDDDDD99999999DDDDDDDDDDDDD7700000000000000000000DDDD
D70000000000000007DDDDD999999999999DDDDDDDDDD7008088888888888000
0000DDDDD00788888888888807DDDD99999999999999DDDDDDDDD00870777777
777780000000DDD7080F7777777777780DDDD9999FFFFFFF99999DDDDDD70807
70000000000000000000DD70870F7777777777780DDD9999FFFFFFFFFF9999DD
DD70870770BBBBBBBB3330000000D708770F7777777777780DD999999FFFFFFF
FFF9999DD70877070BBBBBBBB3330D000000D087770FFFFFFFFFFFF70DD99999
99FF000000FF999DD0877700BBBBBBBB33300D00000008777700000000000000
0D0000F999907777770FF999087777000000000000000D000000077777078888
888888880D4C4C009999FFF00000F999077777078888888888880D0000000777
70F00700707007080DC4C40779999FFF77770999077770F00700707007080D00
0000077770F7777777777780DDCCCC0FFF9999F00000F999077770F777777777
7780DD00000007770F00707070070780DDCCCC000FF9999F7770F99907770F00
707070070780DD00000007770F7777777777780DDD00000FF0FF9999000FF999
07770F7777777777780DDD0000000770F0070707007880DDDD999FFFFF0FF999
9FFFF9990770F0070707007880DDDD000000070F7777777777700DDDDD999FFF
FFF00F9999FFF999070F7777777777700DDDDD0000000070000000000070DDDD
DDD999FFFFFFF0F9999F999D0070000000000070DDDDDD0000000070F998FF8F
F070DDDDDDD9999FFFFFFF009999999D0070FAA8FF8FF070DDDDDD0000000070
F99F88F88070DDDDDDDD9999FFFFFFFFF99999DD0070FAAF88F88070DDDDDD00
00000077000000000780DDDDDDDDD99999FFFFFF99999DDD0077000000000780
DDDDDD000000070777777777780DDDDDDDDDDD99999999999999DDDD07077777
7777780DDDDDDD000000D0788888888800DDDDDDDDDDDDD999999999999DDDDD
D0788888888800DDDDDDDD000000DD00000000000DDDDDDDDDDDDDDDD9999999
9DDDDDDDDD00000000000DDDDDDDDD000000}
Layout = blGlyphTop
NumGlyphs = 3
end
object Edit1: TEdit
Left = 8
Top = 216
Width = 217
Height = 37
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 3
OnKeyPress = Edit1KeyPress
end
object ComboBox1: TComboBox
Left = 232
Top = 144
Width = 113
Height = 28
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemHeight = 20
ParentFont = False
TabOrder = 4
OnChange = ComboBox1Change
end
object DsATickets: TDataSource
DataSet = TbTickets
Left = 136
Top = 128
end
object TbTickets: TTable
SessionName = 'AccesosCAP'
TableName = 'datos\accesos.db'
Left = 136
Top = 160
end
object TbVentas: TTable
TableName = 'datos\TbFacturas.db'
Left = 168
Top = 160
end
object TbPrecios: TTable
IndexFieldNames = 'Tiempo'
TableName = 'datos\precios.db'
Left = 200
Top = 160
end
object Session1: TSession
Active = True
SessionName = 'AccesosCAP'
Left = 96
Top = 160
end
object sql: TQuery
SessionName = 'AccesosCAP'
RequestLive = True
Left = 168
Top = 200
end
end

80
cap_gestion/tickets.h Normal file
View File

@ -0,0 +1,80 @@
//---------------------------------------------------------------------------
#ifndef ticketsH
#define ticketsH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "DigitNum.h"
#include <Buttons.hpp>
#include <DBCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Mask.hpp>
#include <Db.hpp>
#include <DBTables.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TfTickets : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TLabel *Label1;
TBevel *Bevel1;
TImage *CardOK;
TBitBtn *BitBtn1;
TBevel *Bevel2;
TBevel *Bevel3;
TBitBtn *BitBtn2;
TEdit *Edit1;
TLabel *Label2;
TLabel *Label3;
TComboBox *ComboBox1;
TDataSource *DsATickets;
TTable *TbTickets;
TTable *TbVentas;
TTable *TbPrecios;
TLabel *Label4;
TLabel *Label5;
TSession *Session1;
TLabel *Label6;
TLabel *Label7;
TDigitNum *DigitNum1;
TDigitNum *DigitNum2;
TRadioGroup *RadioGroup1;
TQuery *sql;
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall Edit1KeyPress(TObject *Sender, char &Key);
void __fastcall FormDestroy(TObject *Sender);
private: // User declarations
int __fastcall obtenerTicket(void);
void __fastcall ObtenDirLEGOS(AnsiString cadena, int &nLEGOS, int **ID);
int __fastcall NDias( TDateTime E, TDateTime S );
int __fastcall NMinutos( TDateTime hE, TDateTime hS );
Currency __fastcall CalculaCoste( int Minutos, int Dias );
TStringList *ticketE,*ticketS;
void __fastcall ticket_Imprimir(int idt,char tipo,Currency pvp,int mm,TDateTime fechaE,TDateTime fechaS);
AnsiString __fastcall ticket_parsearLinea(AnsiString linea, int idt, Currency pvp,int mm, TDateTime fechaE, TDateTime fechaS);
bool __fastcall ticket_writeCOM(AnsiString output);
void __fastcall ticket_CerrarPuerto(void);
AnsiString __fastcall ticket_SearchAndReplace(AnsiString l, AnsiString s, AnsiString r );
HANDLE __fastcall ticket_AbrirPuerto(char *puerto);
HANDLE hCom;
public: // User declarations
__fastcall TfTickets(TComponent* Owner);
bool __fastcall GrabaTarjeta(int ID);
Currency precioInicial,precioMinuto;
};
//---------------------------------------------------------------------------
extern PACKAGE TfTickets *fTickets;
//---------------------------------------------------------------------------
#endif

BIN
cap_gestion/tickets.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
cap_gestion/tnabonados.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB