From b87129af2aa861e23bee313e6ef808c1decd48df Mon Sep 17 00:00:00 2001 From: david Date: Thu, 20 Dec 2007 12:25:15 +0000 Subject: [PATCH] =?UTF-8?q?Nuevo=20m=C3=B3dulo=20de=20unidades=20de=20medi?= =?UTF-8?q?da.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@186 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/FACTUGES.FDB | Bin 2482176 -> 2482176 bytes Database/scripts/factuges.sql | 86 +-- Database/scripts/factuges_sysdata.sql | 56 +- .../Iconos/Unidades de medida/16x16/Ruler.png | Bin 0 -> 336 bytes .../Iconos/Unidades de medida/24x24/Ruler.png | Bin 0 -> 471 bytes .../Iconos/Unidades de medida/28x28/Ruler.png | Bin 0 -> 493 bytes .../Logotipos Tecsitel/Logotipo-Tecsitel.jpg | Bin 0 -> 2158 bytes Source/Cliente/uBootStrap.pas | 4 +- .../UnidadesMedida_controller.bdsproj | 175 ++++++ .../Controller/UnidadesMedida_controller.dpk | 40 ++ .../UnidadesMedida_controller.dproj | 543 +++++++++++++++++ .../Controller/UnidadesMedida_controller.rc | 22 + .../Controller/UnidadesMedida_controller.res | Bin 0 -> 5028 bytes .../View/uIEditorUnidadesMedida.pas | 23 + .../Controller/uUnidadesMedidaController.pas | 234 ++++++++ .../Data/UnidadesMedida_data.bdsproj | 492 ++++++++++++++++ .../Data/UnidadesMedida_data.dpk | 38 ++ .../Data/UnidadesMedida_data.dproj | 545 +++++++++++++++++ .../Data/UnidadesMedida_data.rc | 22 + .../Data/UnidadesMedida_data.res | Bin 0 -> 384 bytes .../Data/uDataModuleUnidadesMedida.dfm | 61 ++ .../Data/uDataModuleUnidadesMedida.pas | 112 ++++ .../Model/Data/uIDataModuleUnidadesMedida.pas | 42 ++ .../Model/UnidadesMedida_model.bdsproj | 175 ++++++ .../Model/UnidadesMedida_model.dpk | 40 ++ .../Model/UnidadesMedida_model.dproj | 546 ++++++++++++++++++ .../Model/UnidadesMedida_model.rc | 22 + .../Model/UnidadesMedida_model.res | Bin 0 -> 5028 bytes .../Model/schUnidadesMedidaClient_Intf.pas | 134 +++++ .../Model/schUnidadesMedidaServer_Intf.pas | 143 +++++ .../Model/uBizUnidadesMedida.pas | 134 +++++ .../Plugin/UnidadesMedida_plugin.bdsproj | 175 ++++++ .../Plugin/UnidadesMedida_plugin.dpk | 41 ++ .../Plugin/UnidadesMedida_plugin.dproj | 545 +++++++++++++++++ .../Plugin/UnidadesMedida_plugin.rc | 22 + .../Plugin/UnidadesMedida_plugin.res | Bin 0 -> 5028 bytes .../Plugin/uPluginUnidadesMedida.dfm | 108 ++++ .../Plugin/uPluginUnidadesMedida.pas | 73 +++ .../Servidor/srvUnidadesMedida_Impl.dfm | 89 +++ .../Servidor/srvUnidadesMedida_Impl.pas | 63 ++ .../UnidadesMedida_Group.bdsgroup | 24 + .../UnidadesMedida_Group.groupproj | 114 ++++ .../Views/UnidadesMedida_view.bdsproj | 175 ++++++ .../Views/UnidadesMedida_view.dpk | 40 ++ .../Views/UnidadesMedida_view.dproj | 546 ++++++++++++++++++ .../Views/UnidadesMedida_view.rc | 22 + .../Views/UnidadesMedida_view.res | Bin 0 -> 5028 bytes .../Views/uEditorUnidadesMedida.dfm | 144 +++++ .../Views/uEditorUnidadesMedida.pas | 180 ++++++ .../Views/uUnidadesMedidaViewRegister.pas | 23 + Source/Servicios/FactuGES.RODL | 9 + Source/Servicios/FactuGES_Intf.pas | 33 ++ Source/Servicios/FactuGES_Invk.pas | 6 + Source/Servicios/RODLFILE.res | Bin 22778 -> 23105 bytes Source/Servidor/FactuGES_Server.RES | Bin 23212 -> 23208 bytes Source/Servidor/FactuGES_Server.dpr | 10 +- Source/Servidor/FactuGES_Server.dproj | 80 ++- Source/Servidor/FactuGES_Server.rc | 2 +- 58 files changed, 6147 insertions(+), 66 deletions(-) create mode 100644 Resources/Iconos/Unidades de medida/16x16/Ruler.png create mode 100644 Resources/Iconos/Unidades de medida/24x24/Ruler.png create mode 100644 Resources/Iconos/Unidades de medida/28x28/Ruler.png create mode 100644 Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg create mode 100644 Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.bdsproj create mode 100644 Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk create mode 100644 Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj create mode 100644 Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc create mode 100644 Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res create mode 100644 Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas create mode 100644 Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj create mode 100644 Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk create mode 100644 Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj create mode 100644 Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc create mode 100644 Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res create mode 100644 Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.dfm create mode 100644 Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj create mode 100644 Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk create mode 100644 Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj create mode 100644 Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc create mode 100644 Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res create mode 100644 Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas create mode 100644 Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas create mode 100644 Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj create mode 100644 Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk create mode 100644 Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj create mode 100644 Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc create mode 100644 Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res create mode 100644 Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm create mode 100644 Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm create mode 100644 Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas create mode 100644 Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup create mode 100644 Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj create mode 100644 Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj create mode 100644 Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk create mode 100644 Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj create mode 100644 Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc create mode 100644 Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res create mode 100644 Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm create mode 100644 Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas create mode 100644 Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 8a1a4d4aa0e8133362fbdd03df49aff7beb2ecef..3bbc0f96790efa273cf9cd934bf93c3c3d6961a5 100644 GIT binary patch delta 26128 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 Wdyksjckc%Jh{4m<&t;ucLK6U?X@64y literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Unidades de medida/24x24/Ruler.png b/Resources/Iconos/Unidades de medida/24x24/Ruler.png new file mode 100644 index 0000000000000000000000000000000000000000..54de69329b040ad97374846ffc3f4e0bbc61879a GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GMLLkhTKK~L(6-&CK zuOkD)#=e^0fs=uJg=CK)Uj~LMRR)HJW(J0z|AF*N28L1t28LG&3=CE?fSU6s#UFKJ zU|{t1ba4!+xRsQ!Kw!mFFe)Arw9Zq3jCzi;}@nPw1}^kWylAkUec zJv{O2{nI~moKIXZ%YQ%7TkD{skn0HX|A?)wt_tVc?Je8XA=@qRIWYc&b}*oD2RjobiY1N!Qqd; z7;GaxNcPF-oM?NzrQuS-!P)#LJauox^j&3tvP>+dZE=Ld*@S}}N?A+9Vj4Q5R<D6kF}T|kRx!0J#QhS z2rKtNuJlm0!}X%VY+W&a8{DF&9{dpR)@*dRa}~RWDYF4Xk*f8*`zhOefRVu9>FVdQ I&MBb@02GL`8~^|S literal 0 HcmV?d00001 diff --git a/Resources/Iconos/Unidades de medida/28x28/Ruler.png b/Resources/Iconos/Unidades de medida/28x28/Ruler.png new file mode 100644 index 0000000000000000000000000000000000000000..353a9abf92afc4dc1f8bcb819e66068057608c5d GIT binary patch literal 493 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-V@X6oRCwCNmZ3|;P#njbGCzp(GmvZ=O8#;0pj+N{?H#=!s|ubCn1G9!=~<}j(ztdjBc#;$}l zj;3f9PE9z+v9#GZ7~pX0Zs{H}6&V}vVVgD9!771NYZR4ZDl%3YQm?Vru!}VcfhsbV zl3G64)yY2j8XHFwx!^l{qfRo`u5{>3$TJG>q2+_kLyu&QQierS-2hoe>2K-gHptAR je=T%_4)!m9-+u-G#DYN}Kx@i300000NkvXXu0mjf5i--` literal 0 HcmV?d00001 diff --git a/Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg b/Resources/Logotipos Tecsitel/Logotipo-Tecsitel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be149e33fc79dcca8fd4602f6bfe98af8501010a GIT binary patch literal 2158 zcmZ8h2~?9;7Jh#MDw`$*f&>bd)dmP#qs6fhIHHKGW$CbqrU8VIDzeN82nLNaNcHGc zLo2%=LDmRiQINoqMMWZoAQ7Te`)F=$g`V^b3} zJa8shtO?EmhqJ`t9NcWJVA#4j5gZ*I2~I?!n;VfxBKfS9&49}` z6e6`r19IwLJs_pFU|JjAFN`G*22;n(li%;jUFvtLCB2}z)(2Lv(FA}o+M>GqEYFwL zo)^`f`Ym2WYw?RMmC|IH&sX!D1;<;|IQub5;)poj8Ovx~4QA&sKi@K|EM;Rn-46>_YkQP!S zRLbfnF{-Xm2|GNjTQOD8a;B#3cj>H+v}3(3r}e?yP0rmDUXrq^e-@p#3w(A(_oFVP zuR44VBkEJCMrfSbsfKXcD17#iN0?s%^}cA?rJUkXoZOoj{^)tPqK9hp{d&yB%E!UP z${OFG0J|_abDa%ow+-o|8UU!c!o-9&w-daw7f)luiU1-gPV!@Uzr&&V{W%)2uk*Q` z{EwkMvjlP-pv;7_zdd<5 zO6F~;mPYu`Z-4plLm94g(zAenVTVkf+G5kUBe(?50L<%i^I_qW;uO6R#2h0$uN%j0l|_2OTL+0FZ*QG?lz*XS5vQF3KY~0jLr_0`9RK6=GP|~~ zMurqnXuFP7&+r zLqv1eNJaKg)a}I5>&yWC8e>MXMBVhSe4htL_#^;yI*wM!$K`_Ym2p(j-QB84{sNq8U(3>flI-Q9 zf^^w&bb)Y?_@-OQ!e6d(1Q8=ALZHzY(M~%AAasN(6ygaR8VM?H5_WPBu?}6FZ{{ zN@wA(p#U`Zi^VsgoGsJ8;Nll#bzr?kP*0^X0C<@?l6ctuOc$9Ou2<>CJQ-5*cS)kf zQ*t9|)KUea`44dRe@w;D2 zevumuzw+dyF_O_v<@-J9kCdw4pR(f{R~YNJ?fU}o`*+6QHp)qgUhdaBU7T`mA6@ab z@l{ve?)1G!s3xfbE4-wGduuog!GOg-LQE@|D5IsfgzQLF7J2H;k}soxF}FkmOux&g z+v6siD&M`%Z%+MgB^_DT+^C%Q#ujX?^B(Pes2%@uw#Pmn!(YztN@l6TRZ7e_DkUA#Db zIi#=O$wA)Oi(>ts-p47lnZ*}3T{GRkqgJ6d(|b~@m + + + + + + + + + + + UnidadesMedida_controller.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk new file mode 100644 index 00000000..9d10ccee --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dpk @@ -0,0 +1,40 @@ +package UnidadesMedida_controller; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + UnidadesMedida_model, + UnidadesMedida_data; + +contains + uUnidadesMedidaController in 'uUnidadesMedidaController.pas', + uIEditorUnidadesMedida in 'View\uIEditorUnidadesMedida.pas'; + +end. diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj new file mode 100644 index 00000000..9d31ccde --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.dproj @@ -0,0 +1,543 @@ + + + {7f80f8aa-6912-4714-986d-aed73035472b} + UnidadesMedida_controller.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_controller.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_controller.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res b/Source/Modulos/Unidades de medida/Controller/UnidadesMedida_controller.res new file mode 100644 index 0000000000000000000000000000000000000000..02236de8db669bbe3315cfec9671db4bcf8913dc GIT binary patch literal 5028 zcmbW5&x;&Y5XWni1tkRCgZEiPMD`#nRcWtPt_oH5Yzu$VV-wb1Bwk_-XFg2H+pSN=U zyka(dZfonp#SD5!jcwWcvJG#kp*8>anb&hWI5@DjY24FJ`|-&Wn^$uqCj8E%Jsr>a z(f=18FcLdGW67gkv_9X9SKG|36^E%gpYEy6iCd_cw7Wj~iaqH`jCsjRp5)Tjjm3D> z0$yNKhb0agb9}Iy*6di=$H_r$wE8prvehh4CJk(k3R41_1_tIpwah8HE0zJ2j_A8qJC;h zPS-&^`8?-X2glUhT>Qz`_tI1oCl0I;m#I0|PPJD&x?6D9=#RXC$36y!sH@L4V9JUQ zO~GN_lzo;~$4gKBX=lH9n~Y`sLpL>Q25j^&9{X3YYiX$(S>$ceRjZ9(sJ1i3RjRX$ zJu%I-9czh^DgT^)7wf?X1I?kkwO%pV4}9frWWqiC{m|pl-!`rHskb%S2V!cllLNls zE@6uUea$64TFH%f9$nE+PL0j$(Csl@jKP6E`|sEbVb9)6dbzX;O}gsJTj}n*BLwN2Tb~Kb^L{5h^^(TFzVy_mCyAq;GlLVY)tF3_WiN; zt9xq60Zw2BHhBxa;yCwUat@+RjSJ72e5G}Da6ls%zW<5a6%IO|%y~`w-r(SEy&sHI zL+1cCHjDjtOmT-3ZMb?3gym;Z+``j8sjb>;9XPzh1Ge(To)-Pdp&Ip5b5maQQy<>x z;4$(~Uhbs_4A-Xo;KtoTef7S9KQ-lxGhB4nh09EwmCN_M=+8a!eWK2a1qWTe_u|K$ z>+h*>83&sj-d=;xdarjSeloa(>HLWs?{nM%q2JF2IMkyqd$b@%^>5HxIH;ZY;n(Z; z`YV@X*6eMVNk4OW=Xi}Y7w2AH*r}hhAN!-V;LE^FW1cqe-%{<%KE%1>{(@uVA|LvF z|J6pX*Qr*1#WC+WyTI~!tifW$(x@{fY0n3w~h7eA|@stGrQv zano30;rWe#Pb24Q4SWw4<$gm$!H@c@ue~+n9nIRryEg0(+$zOst?!S#pU1kqlj4xy z?W|eF_rC5r|L#bP*?9l?`BR^oVDRJqA{V;Q?%brE8m88~7veY6SckRvIty{HpUhO;SN#DLEo$afXFl8=h$ZPu>i@PdBM=dt#yd=JphyT;Fi zIQqF4Zk}DR{Jtr;c?QAeNiOT~8RIN^y{oa_S@$Jhp*ytayUTk9_Q0WuHno^O%=2Eo zjKgr|XJEi(>X)&p@p#YD9yx%u`Y?vAdl!-udqj-iGgab^KEC$~j?P2=j!d8D-E*uG zP@i!u@lN!|@m<2%KqGbIPNWY$KVy5_|JC4MkPW+e z&io&azTZ-w4PUlv<9{JH&t1~k4ZCi&K0mV0)w=2kwc}k;o9EZfKmQ?L7$cFZqN!(7 z79-yEk6(P?x;?UocE|SZwq23GYqykn-@dl{ihArZyHd3)g}Zi19ANaOvTbPezTLA2 zwx{?Xq zvHQZlyTagY$NyOKw|y4255yC-x9uCPj3;=GabGB6&%V;Sd-4zMTQSKeVy~4PR1MtZ zO>e9~)aWzC-dDEorTx(gLsKo$y&SWuepUNrCv(HOCGxmqW^eg!hl+i1zpKb;y)Rt+ GWAk6yB6aNm literal 0 HcmV?d00001 diff --git a/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas new file mode 100644 index 00000000..7f420d15 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/View/uIEditorUnidadesMedida.pas @@ -0,0 +1,23 @@ +unit uIEditorUnidadesMedida; + +interface + +uses + uEditorDBBase, uBizUnidadesMedida, uUnidadesMedidaController; + +type + IEditorUnidadesMedida = interface(IEditorDBBase) + ['{5786FFF0-8036-4018-B77E-CE98F1FF1CD9}'] + function GetUnidadesMedida: IBizUnidadMedida; + procedure SetUnidadesMedida(const Value: IBizUnidadMedida); + property UnidadesMedida: IBizUnidadMedida read GetUnidadesMedida write SetUnidadesMedida; + + function GetController : IUnidadesMedidaController; + procedure SetController (const Value : IUnidadesMedidaController); + property Controller : IUnidadesMedidaController read GetController write SetController; + end; + + +implementation + +end. diff --git a/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas new file mode 100644 index 00000000..eec7f264 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Controller/uUnidadesMedidaController.pas @@ -0,0 +1,234 @@ +unit uUnidadesMedidaController; + +interface + + +uses + Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + uIDataModuleUnidadesMedida, uBizUnidadesMedida; + +type + IUnidadesMedidaController = interface(IObservador) + ['{8D56360B-0AAA-41FA-9C48-90C586B07E37}'] + function BuscarTodos: IBizUnidadMedida; + procedure VerTodos(AUnidadesMedida: IBizUnidadMedida); + procedure Anadir(AUnidadMedida : IBizUnidadMedida); + function Eliminar(AUnidadMedida : IBizUnidadMedida): Boolean; + function Guardar(AUnidadMedida : IBizUnidadMedida): Boolean; + procedure DescartarCambios(AUnidadMedida : IBizUnidadMedida); + function Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion:String): Boolean; + function DarListaUnidadesMedida: TStringList; + end; + + TUnidadesMedidaController = class(TObservador, IUnidadesMedidaController) + protected + FDataModule : IDataModuleUnidadesMedida; + + procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override; + function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; + + function ValidarAlmacen(AUnidadMedida: IBizUnidadMedida): Boolean; + + //Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de + //este controller + procedure AsignarDataModule; virtual; + + procedure ValidarObjetos; virtual; + + public + constructor Create; override; + destructor Destroy; override; + + function Eliminar(AUnidadMedida : IBizUnidadMedida): Boolean; + function Guardar(AUnidadMedida : IBizUnidadMedida): Boolean; + procedure DescartarCambios(AUnidadMedida : IBizUnidadMedida); virtual; + procedure Anadir(AUnidadMedida : IBizUnidadMedida); + function BuscarTodos: IBizUnidadMedida; + procedure VerTodos(AUnidadesMedida: IBizUnidadMedida); + function Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion:String): Boolean; + function DarListaUnidadesMedida: TStringList; + end; + +implementation + +uses + cxControls, DB, uEditorRegistryUtils, schUnidadesMedidaClient_Intf, + uIEditorUnidadesMedida, uDataModuleUnidadesMedida, + uDAInterfaces, uDataTableUtils, + uDateUtils, uROTypes, DateUtils, Controls, Windows; + +{ TUnidadesMedidaController } + +procedure TUnidadesMedidaController.Anadir(AUnidadMedida: IBizUnidadMedida); +begin + AUnidadMedida.Insert; +end; + +procedure TUnidadesMedidaController.AsignarDataModule; +begin + FDataModule := TDataModuleUnidadesMedida.Create(Nil); +end; + +function TUnidadesMedidaController.BuscarTodos: IBizUnidadMedida; +begin + Result := FDataModule.GetItems; +end; + +constructor TUnidadesMedidaController.Create; +begin + inherited; + AsignarDataModule; +end; + +function TUnidadesMedidaController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; +begin + Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf); +end; + +function TUnidadesMedidaController.DarListaUnidadesMedida: TStringList; +var + AUnidadesMedida: IBizUnidadMedida; +begin + AUnidadesMedida := BuscarTodos; + AUnidadesMedida.DataTable.Active := True; + Result := TStringList.Create; + try + with Result do + begin + AUnidadesMedida.DataTable.First; + while not AUnidadesMedida.DataTable.EOF do + begin + Add(AUnidadesMedida.DESCRIPCION); + AUnidadesMedida.DataTable.Next; + end; + end; + finally + AUnidadesMedida := NIL; + end; +end; + +procedure TUnidadesMedidaController.DescartarCambios(AUnidadMedida: IBizUnidadMedida); +begin + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignado'); + + ShowHourglassCursor; + try + if (AUnidadMedida.State in dsEditModes) then + AUnidadMedida.Cancel; + + AUnidadMedida.DataTable.CancelUpdates; + finally + HideHourglassCursor; + end; +end; + +destructor TUnidadesMedidaController.Destroy; +begin + FDataModule := Nil; + inherited; +end; + +function TUnidadesMedidaController.ValidarAlmacen(AUnidadMedida: IBizUnidadMedida): Boolean; +begin +// +end; + +procedure TUnidadesMedidaController.ValidarObjetos; +begin +// +end; + +procedure TUnidadesMedidaController.VerTodos(AUnidadesMedida: IBizUnidadMedida); +var + AEditor : IEditorUnidadesMedida; +begin + AEditor := NIL; + ShowHourglassCursor; + try + CreateEditor('EditorUnidadesMedida', IEditorUnidadesMedida, AEditor); + if Assigned(AEditor) then + with AEditor do + begin + Controller := Self; //OJO ORDEN MUY IMPORTANTE + UnidadesMedida := AUnidadesMedida; + ShowModal; + Release; + end; + finally + AEditor := NIL; + HideHourglassCursor; + end; +end; + +function TUnidadesMedidaController.Eliminar(AUnidadMedida: IBizUnidadMedida): Boolean; +begin + Result := False; + + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignada'); + + ShowHourglassCursor; + try + if (AUnidadMedida.State in dsEditModes) then + AUnidadMedida.Cancel; + + AUnidadMedida.Delete; + AUnidadMedida.DataTable.ApplyUpdates; + HideHourglassCursor; + Result := True; + finally + HideHourglassCursor; + end; +end; + +procedure TUnidadesMedidaController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); +begin + inherited; +// +end; + +function TUnidadesMedidaController.Guardar(AUnidadMedida: IBizUnidadMedida): Boolean; +begin + Result := False; + + if not Assigned(AUnidadMedida) then + raise Exception.Create ('Almacen no asignada'); + + ValidarObjetos; + + if ValidarAlmacen(AUnidadMedida) then + begin + ShowHourglassCursor; + try + if (AUnidadMedida.DataTable.State in dsEditModes) then + AUnidadMedida.DataTable.Post; + + AUnidadMedida.DataTable.ApplyUpdates; + + Result := True; + finally + HideHourglassCursor; + end; + end; +end; + +function TUnidadesMedidaController.Localizar(AUnidadesMedida: IBizUnidadMedida; ADescripcion: String): Boolean; +begin + Result := True; + ShowHourglassCursor; + try + with AUnidadesMedida.DataTable do + begin + DisableControls; + First; + if not Locate(fld_UnidadesMedidaDESCRIPCION, ADescripcion, []) then + Result := False; + EnableControls; + end; + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj new file mode 100644 index 00000000..83b4e1cf --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.bdsproj @@ -0,0 +1,492 @@ + + + + + + + + + + + + UnidadesMedida_data.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk new file mode 100644 index 00000000..02f6345d --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dpk @@ -0,0 +1,38 @@ +package UnidadesMedida_data; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + UnidadesMedida_model; + +contains + uDataModuleUnidadesMedida in 'uDataModuleUnidadesMedida.pas' {DataModuleUnidadesMedida: TDAClientDataModule}; + +end. diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj new file mode 100644 index 00000000..94ecb704 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.dproj @@ -0,0 +1,545 @@ + + + + {55d06c67-fc74-4d88-8787-801dee872bb3} + UnidadesMedida_data.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_data.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_data.dpk + + + + + MainSource + + + + + + + + +
DataModuleUnidadesMedida
+
+
+
+ diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res b/Source/Modulos/Unidades de medida/Data/UnidadesMedida_data.res new file mode 100644 index 0000000000000000000000000000000000000000..8b251f312bcccec5485024f6fe8d80e1cdf25746 GIT binary patch literal 384 zcmZ9HOA3Ne6ox;+L5PEv(4cV`IIrjdPAV##hV&wc1g%+%X(R2Xc{`~7t6e0Ioa?#% zkMj%AQhz>WYy7LeWAUaqx~Kv?-;(-Hs4-^ATIZOBrid9+-6Ne7&88mi>kUR4lo#jxZ;#*s4zxg9yNlk=H9sqkCD2^cEXKpiTBNfgkKpXJBWWaLt(Qkv@0 w5yv*t82((Wlr2{_+FDoDHKW2QCXvc+s**ul{{$ + Params = <> + StreamingOptions = [soDisableEventsWhileStreaming] + RemoteDataAdapter = rda_UnidadesMedida + DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] + MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] + LogicalName = 'UnidadesMedida' + IndexDefs = <> + Left = 336 + Top = 24 + end + object ds_UnidadesMedida: TDADataSource + DataSet = tbl_UnidadesMedida.Dataset + DataTable = tbl_UnidadesMedida + Left = 336 + Top = 96 + end +end diff --git a/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas new file mode 100644 index 00000000..e295f146 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Data/uDataModuleUnidadesMedida.pas @@ -0,0 +1,112 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uDataModuleUnidadesMedida; + +interface + +uses + SysUtils, Classes, DB, uDADataTable, uDABINAdapter, + uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes, + uRORemoteService, uROClient, uROBinMessage, + uDADesigntimeCall, + + uIDataModuleUnidadesMedida, uBizUnidadesMedida, uDADataStreamer, uDARemoteDataAdapter, + uDAInterfaces, uRODynamicRequest, uDABin2DataStreamer, uDAMemDataTable, + uDataModuleBase; + +type + TDataModuleUnidadesMedida = class(TDataModuleBase, IDataModuleUnidadesMedida) + RORemoteService: TRORemoteService; + rda_UnidadesMedida: TDARemoteDataAdapter; + Bin2DataStreamer: TDABin2DataStreamer; + tbl_UnidadesMedida: TDAMemDataTable; + ds_UnidadesMedida: TDADataSource; + procedure DAClientDataModuleCreate(Sender: TObject); + public + function GetItems: IBizUnidadMedida; + function GetItem(const ID : Integer) : IBizUnidadMedida; + function NewItem : IBizUnidadMedida; + end; + +implementation + +{$R *.DFM} + +uses + FactuGES_Intf, uDataModuleConexion, uDataTableUtils, cxControls, + schUnidadesMedidaClient_Intf; + +{ TDataModuleUnidadesMedida } + +procedure TDataModuleUnidadesMedida.DAClientDataModuleCreate(Sender: TObject); +begin + RORemoteService.Channel := dmConexion.Channel; + RORemoteService.Message := dmConexion.Message; +end; + +function TDataModuleUnidadesMedida.GetItems: IBizUnidadMedida; +var + AUnidadMedida : TDAMemDataTable; +begin + ShowHourglassCursor; + try + AUnidadMedida := CloneDataTable(tbl_UnidadesMedida); + AUnidadMedida.BusinessRulesID := BIZ_CLIENT_UnidadMedida; + + Result := (AUnidadMedida as IBizUnidadMedida); + finally + HideHourglassCursor; + end; +end; + +function TDataModuleUnidadesMedida.NewItem: IBizUnidadMedida; +begin + Result := GetItem(ID_NULO) +end; + +function TDataModuleUnidadesMedida.GetItem(const ID: Integer): IBizUnidadMedida; +var + Condicion: TDAWhereExpression; +begin + ShowHourglassCursor; + try + Result := Self.GetItems; + + with Result.DataTable.DynamicWhere do + begin + // (ID = :ID) + Condicion := NewBinaryExpression(NewField('', fld_UnidadesMedidaID), NewConstant(ID, datInteger), dboEqual); + + if IsEmpty then + Expression := Condicion + else + Expression := NewBinaryExpression(Expression, Condicion, dboAnd); + end; + + finally + HideHourglassCursor; + end; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas new file mode 100644 index 00000000..7bdc1529 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/Data/uIDataModuleUnidadesMedida.pas @@ -0,0 +1,42 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uIDataModuleUnidadesMedida; + +interface + +uses + uBizUnidadesMedida; + +type + IDataModuleUnidadesMedida = interface + ['{30D6FF83-4527-46E9-823D-C1E3E4E00522}'] + function GetItems: IBizUnidadMedida; + function GetItem(const ID : Integer) : IBizUnidadMedida; + function NewItem : IBizUnidadMedida; + + end; + +implementation + +end. diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj new file mode 100644 index 00000000..675e079e --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_model.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 3 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk new file mode 100644 index 00000000..8802087f --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dpk @@ -0,0 +1,40 @@ +package UnidadesMedida_model; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase; + +contains + uIDataModuleUnidadesMedida in 'Data\uIDataModuleUnidadesMedida.pas', + uBizUnidadesMedida in 'uBizUnidadesMedida.pas', + schUnidadesMedidaClient_Intf in 'schUnidadesMedidaClient_Intf.pas', + schUnidadesMedidaServer_Intf in 'schUnidadesMedidaServer_Intf.pas'; + +end. diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj new file mode 100644 index 00000000..c638ded6 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.dproj @@ -0,0 +1,546 @@ + + + + {82fe21d8-609d-444d-879e-4d9e1c291607} + UnidadesMedida_model.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_model.bpl + + + 7.0 + False + False + 0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + 3 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_model.dpk + + + + + MainSource + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res b/Source/Modulos/Unidades de medida/Model/UnidadesMedida_model.res new file mode 100644 index 0000000000000000000000000000000000000000..02236de8db669bbe3315cfec9671db4bcf8913dc GIT binary patch literal 5028 zcmbW5&x;&Y5XWni1tkRCgZEiPMD`#nRcWtPt_oH5Yzu$VV-wb1Bwk_-XFg2H+pSN=U zyka(dZfonp#SD5!jcwWcvJG#kp*8>anb&hWI5@DjY24FJ`|-&Wn^$uqCj8E%Jsr>a z(f=18FcLdGW67gkv_9X9SKG|36^E%gpYEy6iCd_cw7Wj~iaqH`jCsjRp5)Tjjm3D> z0$yNKhb0agb9}Iy*6di=$H_r$wE8prvehh4CJk(k3R41_1_tIpwah8HE0zJ2j_A8qJC;h zPS-&^`8?-X2glUhT>Qz`_tI1oCl0I;m#I0|PPJD&x?6D9=#RXC$36y!sH@L4V9JUQ zO~GN_lzo;~$4gKBX=lH9n~Y`sLpL>Q25j^&9{X3YYiX$(S>$ceRjZ9(sJ1i3RjRX$ zJu%I-9czh^DgT^)7wf?X1I?kkwO%pV4}9frWWqiC{m|pl-!`rHskb%S2V!cllLNls zE@6uUea$64TFH%f9$nE+PL0j$(Csl@jKP6E`|sEbVb9)6dbzX;O}gsJTj}n*BLwN2Tb~Kb^L{5h^^(TFzVy_mCyAq;GlLVY)tF3_WiN; zt9xq60Zw2BHhBxa;yCwUat@+RjSJ72e5G}Da6ls%zW<5a6%IO|%y~`w-r(SEy&sHI zL+1cCHjDjtOmT-3ZMb?3gym;Z+``j8sjb>;9XPzh1Ge(To)-Pdp&Ip5b5maQQy<>x z;4$(~Uhbs_4A-Xo;KtoTef7S9KQ-lxGhB4nh09EwmCN_M=+8a!eWK2a1qWTe_u|K$ z>+h*>83&sj-d=;xdarjSeloa(>HLWs?{nM%q2JF2IMkyqd$b@%^>5HxIH;ZY;n(Z; z`YV@X*6eMVNk4OW=Xi}Y7w2AH*r}hhAN!-V;LE^FW1cqe-%{<%KE%1>{(@uVA|LvF z|J6pX*Qr*1#WC+WyTI~!tifW$(x@{fY0n3w~h7eA|@stGrQv zano30;rWe#Pb24Q4SWw4<$gm$!H@c@ue~+n9nIRryEg0(+$zOst?!S#pU1kqlj4xy z?W|eF_rC5r|L#bP*?9l?`BR^oVDRJqA{V;Q?%brE8m88~7veY6SckRvIty{HpUhO;SN#DLEo$afXFl8=h$ZPu>i@PdBM=dt#yd=JphyT;Fi zIQqF4Zk}DR{Jtr;c?QAeNiOT~8RIN^y{oa_S@$Jhp*ytayUTk9_Q0WuHno^O%=2Eo zjKgr|XJEi(>X)&p@p#YD9yx%u`Y?vAdl!-udqj-iGgab^KEC$~j?P2=j!d8D-E*uG zP@i!u@lN!|@m<2%KqGbIPNWY$KVy5_|JC4MkPW+e z&io&azTZ-w4PUlv<9{JH&t1~k4ZCi&K0mV0)w=2kwc}k;o9EZfKmQ?L7$cFZqN!(7 z79-yEk6(P?x;?UocE|SZwq23GYqykn-@dl{ihArZyHd3)g}Zi19ANaOvTbPezTLA2 zwx{?Xq zvHQZlyTagY$NyOKw|y4255yC-x9uCPj3;=GabGB6&%V;Sd-4zMTQSKeVy~4PR1MtZ zO>e9~)aWzC-dDEorTx(gLsKo$y&SWuepUNrCv(HOCGxmqW^eg!hl+i1zpKb;y)Rt+ GWAk6yB6aNm literal 0 HcmV?d00001 diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas new file mode 100644 index 00000000..72508dab --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaClient_Intf.pas @@ -0,0 +1,134 @@ +unit schUnidadesMedidaClient_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + +const + { Data table rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_UnidadesMedida = '{6C423586-F446-4984-BC7A-C5B4E036C9DC}'; + + { Data table names } + nme_UnidadesMedida = 'UnidadesMedida'; + + { UnidadesMedida fields } + fld_UnidadesMedidaID = 'ID'; + fld_UnidadesMedidaDESCRIPCION = 'DESCRIPCION'; + + { UnidadesMedida field indexes } + idx_UnidadesMedidaID = 0; + idx_UnidadesMedidaDESCRIPCION = 1; + +type + { IUnidadesMedida } + IUnidadesMedida = interface(IDAStronglyTypedDataTable) + ['{3F35C0B0-C4B4-419E-930A-2A9B26E37C88}'] + { Property getters and setters } + function GetIDValue: Integer; + procedure SetIDValue(const aValue: Integer); + function GetIDIsNull: Boolean; + procedure SetIDIsNull(const aValue: Boolean); + function GetDESCRIPCIONValue: String; + procedure SetDESCRIPCIONValue(const aValue: String); + function GetDESCRIPCIONIsNull: Boolean; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); + + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + end; + + { TUnidadesMedidaDataTableRules } + TUnidadesMedidaDataTableRules = class(TDADataTableRules, IUnidadesMedida) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + function GetIDIsNull: Boolean; virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID: Integer read GetIDValue write SetIDValue; + property IDIsNull: Boolean read GetIDIsNull write SetIDIsNull; + property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull: Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + + public + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + end; + +implementation + +uses Variants, uROBinaryHelpers; + +{ TUnidadesMedidaDataTableRules } +constructor TUnidadesMedidaDataTableRules.Create(aDataTable: TDADataTable); +begin + inherited; +end; + +destructor TUnidadesMedidaDataTableRules.Destroy; +begin + inherited; +end; + +function TUnidadesMedidaDataTableRules.GetIDValue: Integer; +begin + result := DataTable.Fields[idx_UnidadesMedidaID].AsInteger; +end; + +procedure TUnidadesMedidaDataTableRules.SetIDValue(const aValue: Integer); +begin + DataTable.Fields[idx_UnidadesMedidaID].AsInteger := aValue; +end; + +function TUnidadesMedidaDataTableRules.GetIDIsNull: boolean; +begin + result := DataTable.Fields[idx_UnidadesMedidaID].IsNull; +end; + +procedure TUnidadesMedidaDataTableRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_UnidadesMedidaID].AsVariant := Null; +end; + +function TUnidadesMedidaDataTableRules.GetDESCRIPCIONValue: String; +begin + result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsString; +end; + +procedure TUnidadesMedidaDataTableRules.SetDESCRIPCIONValue(const aValue: String); +begin + DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsString := aValue; +end; + +function TUnidadesMedidaDataTableRules.GetDESCRIPCIONIsNull: boolean; +begin + result := DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].IsNull; +end; + +procedure TUnidadesMedidaDataTableRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_UnidadesMedidaDESCRIPCION].AsVariant := Null; +end; + + +initialization + RegisterDataTableRules(RID_UnidadesMedida, TUnidadesMedidaDataTableRules); + +end. diff --git a/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas new file mode 100644 index 00000000..53350ba9 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/schUnidadesMedidaServer_Intf.pas @@ -0,0 +1,143 @@ +unit schUnidadesMedidaServer_Intf; + +interface + +uses + Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, FmtBCD, uROXMLIntf, schUnidadesMedidaClient_Intf; + +const + { Delta rules ids + Feel free to change them to something more human readable + but make sure they are unique in the context of your application } + RID_UnidadesMedidaDelta = '{5CD2E828-7EE8-4427-A2EA-4580837BD172}'; + +type + { IUnidadesMedidaDelta } + IUnidadesMedidaDelta = interface(IUnidadesMedida) + ['{5CD2E828-7EE8-4427-A2EA-4580837BD172}'] + { Property getters and setters } + function GetOldIDValue : Integer; + function GetOldDESCRIPCIONValue : String; + + { Properties } + property OldID : Integer read GetOldIDValue; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + end; + + { TUnidadesMedidaBusinessProcessorRules } + TUnidadesMedidaBusinessProcessorRules = class(TDABusinessProcessorRules, IUnidadesMedida, IUnidadesMedidaDelta) + private + protected + { Property getters and setters } + function GetIDValue: Integer; virtual; + function GetIDIsNull: Boolean; virtual; + function GetOldIDValue: Integer; virtual; + function GetOldIDIsNull: Boolean; virtual; + procedure SetIDValue(const aValue: Integer); virtual; + procedure SetIDIsNull(const aValue: Boolean); virtual; + function GetDESCRIPCIONValue: String; virtual; + function GetDESCRIPCIONIsNull: Boolean; virtual; + function GetOldDESCRIPCIONValue: String; virtual; + function GetOldDESCRIPCIONIsNull: Boolean; virtual; + procedure SetDESCRIPCIONValue(const aValue: String); virtual; + procedure SetDESCRIPCIONIsNull(const aValue: Boolean); virtual; + + { Properties } + property ID : Integer read GetIDValue write SetIDValue; + property IDIsNull : Boolean read GetIDIsNull write SetIDIsNull; + property OldID : Integer read GetOldIDValue; + property OldIDIsNull : Boolean read GetOldIDIsNull; + property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue; + property DESCRIPCIONIsNull : Boolean read GetDESCRIPCIONIsNull write SetDESCRIPCIONIsNull; + property OldDESCRIPCION : String read GetOldDESCRIPCIONValue; + property OldDESCRIPCIONIsNull : Boolean read GetOldDESCRIPCIONIsNull; + + public + constructor Create(aBusinessProcessor: TDABusinessProcessor); override; + destructor Destroy; override; + + end; + +implementation + +uses + Variants, uROBinaryHelpers, uDAInterfaces; + +{ TUnidadesMedidaBusinessProcessorRules } +constructor TUnidadesMedidaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); +begin + inherited; +end; + +destructor TUnidadesMedidaBusinessProcessorRules.Destroy; +begin + inherited; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID]); +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldIDValue: Integer; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaID]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldIDIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaID]); +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetIDValue(const aValue: Integer); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID] := aValue; +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetIDIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaID] := Null; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION]); +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldDESCRIPCIONValue: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaDESCRIPCION]; +end; + +function TUnidadesMedidaBusinessProcessorRules.GetOldDESCRIPCIONIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_UnidadesMedidaDESCRIPCION]); +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION] := aValue; +end; + +procedure TUnidadesMedidaBusinessProcessorRules.SetDESCRIPCIONIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_UnidadesMedidaDESCRIPCION] := Null; +end; + + +initialization + RegisterBusinessProcessorRules(RID_UnidadesMedidaDelta, TUnidadesMedidaBusinessProcessorRules); + +end. diff --git a/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas new file mode 100644 index 00000000..b0fa09e4 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Model/uBizUnidadesMedida.pas @@ -0,0 +1,134 @@ +{ +=============================================================================== + Copyright (©) 2007. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: + Versión actual: 1.0.0 + Fecha versión actual: +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uBizUnidadesMedida; + +interface + +uses + uDAInterfaces, uDADataTable, uDBSelectionListUtils, schUnidadesMedidaClient_Intf; + +const + BIZ_CLIENT_UNIDADMEDIDA = 'Client.UnidadMedida'; + +type + IBizUnidadMedida = interface(IUnidadesMedida) + ['{1A127C8E-2D86-4504-A041-B66152CC7A99}'] + function EsNuevo : Boolean; + + // Descomentar esto si hay clases detalles + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + + TBizUnidadMedida = class(TUnidadesMedidaDataTableRules, IBizUnidadMedida, ISeleccionable) + protected + FSeleccionableInterface : ISeleccionable; + + // Descomentar esto si hay clases detalles + // FDetalles : IBizDetalles; + // FDetallesLink : TDADataSource; + // procedure SetDetalles(AValue : IBizDetalles); + // function GetDetalles : IBizDetalles; + + procedure OnNewRecord(Sender: TDADataTable); override; + public + procedure IniciarValoresUnidadMedidaNuevo; + function EsNuevo : Boolean; + constructor Create(aDataTable: TDADataTable); override; + destructor Destroy; override; + + property SeleccionableInterface : ISeleccionable + read FSeleccionableInterface + write FSeleccionableInterface + implements ISeleccionable; + + // Descomentar esto si hay clases detalles + // property Detalles : IBizDetalles read GetDetalles write SetDetalles; + end; + +implementation + +{ TBizUnidadMedida } + +uses + SysUtils, uDataTableUtils; + +// Descomentar esto si hay clases detalles +// function TBizUnidadMedida.GetDetalles: IBizDetalles; +// begin +// Result := FDetalles; +// end; + +// Descomentar esto si hay clases detalles +// procedure TBizUnidadMedida.SetDetalles(AValue: IBizDetalles); +// begin +// FDetalles := AValue; +// EnlazarMaestroDetalle(FDetallesLink, FDetalles); +// end; + +constructor TBizUnidadMedida.Create(aDataTable: TDADataTable); +begin + inherited; + // Descomentar esto si hay clases detalles + // FDetallesLink := TDADataSource.Create(NIL); + // FDetallesLink.DataTable := aDataTable; + + FSeleccionableInterface := TSeleccionable.Create(aDataTable); +end; + +destructor TBizUnidadMedida.Destroy; +begin + // Descomentar esto si hay clases detalles + // FDetalles := NIL; + // FreeAndNIL(FDetallesLink); + + FSeleccionableInterface := NIL; + inherited; +end; + +function TBizUnidadMedida.EsNuevo: Boolean; +begin + Result := (ID < 0); +end; + +procedure TBizUnidadMedida.IniciarValoresUnidadMedidaNuevo; +begin + // +end; + +procedure TBizUnidadMedida.OnNewRecord(Sender: TDADataTable); +begin + inherited; + ID := GetRecNo; // -1, -2, -3... + IniciarValoresUnidadMedidaNuevo; +end; + +initialization + RegisterDataTableRules(BIZ_CLIENT_UNIDADMEDIDA, TBizUnidadMedida); + +finalization + +end. + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj new file mode 100644 index 00000000..c15673d5 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_plugin.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk new file mode 100644 index 00000000..1264c13b --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dpk @@ -0,0 +1,41 @@ +package UnidadesMedida_plugin; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + PluginSDK_D10R, + Base, + GUIBase, + ApplicationBase, + UnidadesMedida_model, + UnidadesMedida_controller, + UnidadesMedida_view; + +contains + uPluginUnidadesMedida in 'uPluginUnidadesMedida.pas'; + +end. diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj new file mode 100644 index 00000000..e238ce0d --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.dproj @@ -0,0 +1,545 @@ + + + + {139324a2-0c57-446d-aebd-edd9578e22fd} + UnidadesMedida_plugin.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_plugin.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_plugin.dpk + + + + + MainSource + + + + + + + + + + + + + + + diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res b/Source/Modulos/Unidades de medida/Plugin/UnidadesMedida_plugin.res new file mode 100644 index 0000000000000000000000000000000000000000..02236de8db669bbe3315cfec9671db4bcf8913dc GIT binary patch literal 5028 zcmbW5&x;&Y5XWni1tkRCgZEiPMD`#nRcWtPt_oH5Yzu$VV-wb1Bwk_-XFg2H+pSN=U zyka(dZfonp#SD5!jcwWcvJG#kp*8>anb&hWI5@DjY24FJ`|-&Wn^$uqCj8E%Jsr>a z(f=18FcLdGW67gkv_9X9SKG|36^E%gpYEy6iCd_cw7Wj~iaqH`jCsjRp5)Tjjm3D> z0$yNKhb0agb9}Iy*6di=$H_r$wE8prvehh4CJk(k3R41_1_tIpwah8HE0zJ2j_A8qJC;h zPS-&^`8?-X2glUhT>Qz`_tI1oCl0I;m#I0|PPJD&x?6D9=#RXC$36y!sH@L4V9JUQ zO~GN_lzo;~$4gKBX=lH9n~Y`sLpL>Q25j^&9{X3YYiX$(S>$ceRjZ9(sJ1i3RjRX$ zJu%I-9czh^DgT^)7wf?X1I?kkwO%pV4}9frWWqiC{m|pl-!`rHskb%S2V!cllLNls zE@6uUea$64TFH%f9$nE+PL0j$(Csl@jKP6E`|sEbVb9)6dbzX;O}gsJTj}n*BLwN2Tb~Kb^L{5h^^(TFzVy_mCyAq;GlLVY)tF3_WiN; zt9xq60Zw2BHhBxa;yCwUat@+RjSJ72e5G}Da6ls%zW<5a6%IO|%y~`w-r(SEy&sHI zL+1cCHjDjtOmT-3ZMb?3gym;Z+``j8sjb>;9XPzh1Ge(To)-Pdp&Ip5b5maQQy<>x z;4$(~Uhbs_4A-Xo;KtoTef7S9KQ-lxGhB4nh09EwmCN_M=+8a!eWK2a1qWTe_u|K$ z>+h*>83&sj-d=;xdarjSeloa(>HLWs?{nM%q2JF2IMkyqd$b@%^>5HxIH;ZY;n(Z; z`YV@X*6eMVNk4OW=Xi}Y7w2AH*r}hhAN!-V;LE^FW1cqe-%{<%KE%1>{(@uVA|LvF z|J6pX*Qr*1#WC+WyTI~!tifW$(x@{fY0n3w~h7eA|@stGrQv zano30;rWe#Pb24Q4SWw4<$gm$!H@c@ue~+n9nIRryEg0(+$zOst?!S#pU1kqlj4xy z?W|eF_rC5r|L#bP*?9l?`BR^oVDRJqA{V;Q?%brE8m88~7veY6SckRvIty{HpUhO;SN#DLEo$afXFl8=h$ZPu>i@PdBM=dt#yd=JphyT;Fi zIQqF4Zk}DR{Jtr;c?QAeNiOT~8RIN^y{oa_S@$Jhp*ytayUTk9_Q0WuHno^O%=2Eo zjKgr|XJEi(>X)&p@p#YD9yx%u`Y?vAdl!-udqj-iGgab^KEC$~j?P2=j!d8D-E*uG zP@i!u@lN!|@m<2%KqGbIPNWY$KVy5_|JC4MkPW+e z&io&azTZ-w4PUlv<9{JH&t1~k4ZCi&K0mV0)w=2kwc}k;o9EZfKmQ?L7$cFZqN!(7 z79-yEk6(P?x;?UocE|SZwq23GYqykn-@dl{ihArZyHd3)g}Zi19ANaOvTbPezTLA2 zwx{?Xq zvHQZlyTagY$NyOKw|y4255yC-x9uCPj3;=GabGB6&%V;Sd-4zMTQSKeVy~4PR1MtZ zO>e9~)aWzC-dDEorTx(gLsKo$y&SWuepUNrCv(HOCGxmqW^eg!hl+i1zpKb;y)Rt+ GWAk6yB6aNm literal 0 HcmV?d00001 diff --git a/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm new file mode 100644 index 00000000..6b2d0506 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.dfm @@ -0,0 +1,108 @@ +object PluginUnidadesMedida: TPluginUnidadesMedida + OldCreateOrder = True + DefaultAction = actUnidadesMedida + Description = 'Tipos de IVA' + ModuleMenu = MainMenu + ModuleName = 'Tipos de IVA' + SmallImages = SmallImages + LargeImages = LargeImages + Author = 'Rodax Software S.L.' + Version = '1.0.0' + Height = 234 + Width = 459 + object LargeImages: TPngImageList + Height = 24 + Width = 24 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D + F80000000970485973000017120000171201679FD2520000011E4944415478DA + 6364A010ACCA60F80FA2C366303062936724CD384CC3FD2AD63030B3F132AC6F + 72C76A09D916800C5FF7218261715F22C3D7EBD31998B86418762C9C82610959 + 1620BB7C612DD0E529397039744B48B600D97098CBD101B2252459802D58D0C1 + BF6F4F18AE5DDEC0F0E40624E289B600D9E597B7B933A868E7E0349C8307C2BF + 7386481F10132C30C3279D8860287359C1F0E30B03D817042D202558602EEFDA + 13C11024B0827010E14B2DB80C87B99C602453122C049329A5C182AC8E119BE1 + A4A6166C2EC76A01B58205AB05D40C160C0BA8915A705A408B60C1EA03B7D000 + AA050BCE38F088CFC16B38292EC7B000DD124A8205A705C8C14549B0E0B50066 + 898A09F9C142D0029825321A94198ED702982594180E0200B0F2324A4753EBA6 + 0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 16 + Bitmap = {} + end + object ModuleActionList: TActionList + Images = SmallImages + Left = 40 + Top = 72 + object actUnidadesMedida: TAction + Category = 'Datos' + Caption = 'Unidades de medida' + ImageIndex = 0 + OnExecute = actUnidadesMedidaExecute + end + end + object MainMenu: TMainMenu + Images = LargeImages + Left = 40 + Top = 16 + object Ventas1: TMenuItem + Caption = 'Datos' + object UnidadesMedida1: TMenuItem + Tag = 313 + Action = actUnidadesMedida + end + end + end + object SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000C14944415478DA + 63642001ACCA60F81F36838111598C9158CD111111FF17F72532AC6F72674036 + 842803403607D6ED645858EBCE101215C0B06BF506B821040D80D9FCF7D76786 + 1F7797303071C930FCFBF6046E082331365FDEE6CEA0A41800D7EC51FD82615A + CA09862D5BF0B80097CDF7EE6F00CB8334D76DC0E102743F63B319A4196B1810 + 6B33D65820C6CFC89A510C20D566140348F133860130CDA4DA8CE102B750D26C + C608039821C4DA8C3316544C88D78C351D340530FC275633080000DE09BBE2B0 + 1D07420000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] + Left = 308 + Top = 16 + Bitmap = {} + end + object ExtraImages: TPngImageList + Height = 28 + Width = 28 + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D494844520000001C0000001C0806000000720DDF + 940000000970485973000017120000171201679FD252000001514944415478DA + 6364A0225895C1F03F6C0603233E358CC41A468C6581952B19D6B78733E0B394 + 2A16822C5BF7218261715F2298BFBEC91DA7A5145B08F31903AB00C3E56DEE0C + BA5E3B19BE5E9FCEB06BF506AC96526421B2653000B28C894B06CCDEB1700A86 + A5645B881E8CE896C100BAA5645988ECB385B5EE0CF1CD3BB15A0602574E4E61 + 787283016E29C916120A4674CB387820EC3B672096926421B1C1886CD98F2F0C + 701AE453A22DC4951A09F90C04B2E6583014199C20DE87E4062308C07C46741C + 92138C5D7B2218CA5C56605846D042525323AE604456C7488C65940623410BA9 + 911A892E4BA9951A71851C232ECBA8198C582DA4766AC46B212D52234E0BE911 + 8CD87D58B79328CB884D8D44C5A15B68004D8211AB85304B3DE273A81E8C382D + 44B79492D448B485304B653418A8168C042D8459AA62429D6024CA42649F52CB + 328216C22CA59665200000B1F5433DEC7F85AD0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end> + Left = 232 + Top = 80 + Bitmap = {} + end +end diff --git a/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas new file mode 100644 index 00000000..dbea8e55 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Plugin/uPluginUnidadesMedida.pas @@ -0,0 +1,73 @@ +unit uPluginUnidadesMedida; + +interface + +uses + uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList, + ImgList, Controls, PngImageList; + +type + IMCUnidadesMedida = interface(IInterface) + ['{386EDE31-46C9-4EA1-9F1D-423739372E1F}'] + end; + + TPluginUnidadesMedida = class(TModuleController, IMCUnidadesMedida) + actUnidadesMedida: TAction; + ExtraImages: TPngImageList; + LargeImages: TPngImageList; + MainMenu: TMainMenu; + ModuleActionList: TActionList; + SmallImages: TPngImageList; + Ventas1: TMenuItem; + UnidadesMedida1: TMenuItem; + procedure actUnidadesMedidaExecute(Sender: TObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + +implementation + +{$R *.dfm} + +uses + Forms, Dialogs, SysUtils, + uUnidadesMedidaController, uBizUnidadesMedida, uUnidadesMedidaViewRegister; + +function GetModule : TModuleController; +begin + Result := TPluginUnidadesMedida.Create(NIL); +end; + +exports + GetModule name GET_MODULE_FUNC; + +procedure TPluginUnidadesMedida.actUnidadesMedidaExecute(Sender: TObject); +var + AUnidadesMedidaController : IUnidadesMedidaController; + AUnidadesMedida : IBizUnidadMedida; +begin + AUnidadesMedidaController := TUnidadesMedidaController.Create; + AUnidadesMedida := (AUnidadesMedidaController.BuscarTodos as IBizUnidadMedida); + AUnidadesMedidaController.VerTodos(AUnidadesMedida); +end; + +constructor TPluginUnidadesMedida.Create(AOwner: TComponent); +begin + inherited; + uUnidadesMedidaViewRegister.RegisterViews; +end; + +destructor TPluginUnidadesMedida.Destroy; +begin + uUnidadesMedidaViewRegister.UnregisterViews; + inherited; +end; + +initialization + RegisterModuleClass(TPluginUnidadesMedida); + +finalization + UnRegisterModuleClass(TPluginUnidadesMedida); + +end. diff --git a/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm new file mode 100644 index 00000000..6472a7f2 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.dfm @@ -0,0 +1,89 @@ +object srvUnidadesMedida: TsrvUnidadesMedida + OldCreateOrder = True + OnCreate = DARemoteServiceCreate + RequiresSession = True + SessionManager = dmServer.SessionManager + ServiceSchema = schUnidadesMedida + ServiceDataStreamer = Bin2DataStreamer + ExportedDataTables = <> + BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection + Height = 300 + Width = 334 + object Diagrams: TDADiagrams + Left = 150 + Top = 88 + DiagramData = ''#13#10''#13#10 + end + object DataDictionary: TDADataDictionary + Fields = < + item + Name = 'UnidadesMedida_ID' + DataType = datAutoInc + GeneratorName = 'GEN_UNIDADES_MEDIDA_ID' + Required = True + DisplayLabel = 'ID' + end + item + Name = 'UnidadesMedida_DESCRIPCION' + DataType = datString + Size = 255 + DisplayLabel = 'Descripci'#243'n' + end> + Left = 150 + Top = 24 + end + object schUnidadesMedida: TDASchema + ConnectionManager = dmServer.ConnectionManager + DataDictionary = DataDictionary + Diagrams = Diagrams + Datasets = < + item + Params = <> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + TargetTable = 'UNIDADES_MEDIDA' + StatementType = stAutoSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end + item + DatasetField = 'DESCRIPCION' + TableField = 'DESCRIPCION' + end> + end> + Name = 'UnidadesMedida' + Fields = < + item + Name = 'ID' + DataType = datAutoInc + GeneratorName = 'GEN_UNIDADES_MEDIDA_ID' + ServerAutoRefresh = True + DictionaryEntry = 'UnidadesMedida_ID' + InPrimaryKey = True + end + item + Name = 'DESCRIPCION' + DataType = datString + Size = 255 + DictionaryEntry = 'UnidadesMedida_DESCRIPCION' + end> + end> + JoinDataTables = <> + UnionDataTables = <> + Commands = <> + RelationShips = <> + UpdateRules = <> + Version = 0 + Left = 48 + Top = 24 + end + object Bin2DataStreamer: TDABin2DataStreamer + Left = 48 + Top = 88 + end +end diff --git a/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas new file mode 100644 index 00000000..b116c352 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Servidor/srvUnidadesMedida_Impl.pas @@ -0,0 +1,63 @@ +unit srvUnidadesMedida_Impl; + +{----------------------------------------------------------------------------} +{ This unit was automatically generated by the RemObjects SDK after reading } +{ the RODL file associated with this project . } +{ } +{ This is where you are supposed to code the implementation of your objects. } +{----------------------------------------------------------------------------} + +interface + +uses + {vcl:} Classes, SysUtils, + {RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions, + {Ancestor Implementation:} DataAbstractService_Impl, + {Used RODLs:} DataAbstract4_Intf, + {Generated:} uDABusinessProcessor, uDABin2DataStreamer, uDADataStreamer, + uDAScriptingProvider, uDAClasses, + FactuGES_Intf, uDAInterfaces; + +type + { TsrvUnidadesMedida } + TsrvUnidadesMedida = class(TDataAbstractService, IsrvUnidadesMedida) + Diagrams: TDADiagrams; + Bin2DataStreamer: TDABin2DataStreamer; + schUnidadesMedida: TDASchema; + DataDictionary: TDADataDictionary; + procedure DARemoteServiceCreate(Sender: TObject); + procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; + var aConnectionName: string); + private + protected + end; + +implementation + +{$R *.dfm} +uses + {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils; + +procedure Create_srvUnidadesMedida(out anInstance : IUnknown); +begin + anInstance := TsrvUnidadesMedida.Create(NIL); +end; + +{ srvUnidadesMedida } +procedure TsrvUnidadesMedida.DARemoteServiceCreate(Sender: TObject); +begin + SessionManager := dmServer.SessionManager; +end; + +procedure TsrvUnidadesMedida.DataAbstractServiceBeforeAcquireConnection( + aSender: TObject; var aConnectionName: string); +begin + ConnectionName := dmServer.ConnectionName; +end; + +initialization + TROClassFactory.Create('srvUnidadesMedida', Create_srvUnidadesMedida, TsrvUnidadesMedida_Invoker); + +finalization + +end. diff --git a/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup new file mode 100644 index 00000000..96cc30ff --- /dev/null +++ b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.bdsgroup @@ -0,0 +1,24 @@ + + + + + + + + + + + ..\..\Base\Base.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\UnidadesMedida_model.bdsproj + Data\UnidadesMedida_data.bdsproj + Controller\UnidadesMedida_controller.bdsproj + Views\UnidadesMedida_view.bdsproj + Plugin\UnidadesMedida_plugin.bdsproj + Base.bpl GUIBase.bpl Usuarios.bpl UnidadesMedida_model.bpl UnidadesMedida_data.bpl UnidadesMedida_controller.bpl UnidadesMedida_view.bpl UnidadesMedida_plugin.bpl + + + + diff --git a/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj new file mode 100644 index 00000000..45d3bb51 --- /dev/null +++ b/Source/Modulos/Unidades de medida/UnidadesMedida_Group.groupproj @@ -0,0 +1,114 @@ + + + {033276d8-059f-49be-9cc2-3276e536a74d} + + + + + + + + + + + + + + + Default.Personality + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj new file mode 100644 index 00000000..6bacd554 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.bdsproj @@ -0,0 +1,175 @@ + + + + + + + + + + + + UnidadesMedida_view.dpk + + + 7.0 + + + 8 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 1 + 1 + True + True + WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; + + False + + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + + + + False + + + + + + False + + + True + False + + + + $00000000 + + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 3082 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk new file mode 100644 index 00000000..77006d14 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dpk @@ -0,0 +1,40 @@ +package UnidadesMedida_view; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$IMPLICITBUILD ON} + +requires + rtl, + vcl, + Base, + GUIBase, + ApplicationBase, + UnidadesMedida_model, + UnidadesMedida_controller; + +contains + uEditorUnidadesMedida in 'uEditorUnidadesMedida.pas' {fEditorUnidadesMedida: TfEditorUnidadesMedida}, + uUnidadesMedidaViewRegister in 'uUnidadesMedidaViewRegister.pas'; + +end. diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj new file mode 100644 index 00000000..65a09a44 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.dproj @@ -0,0 +1,546 @@ + + + {e3d36a6f-7004-4c89-9f3d-f2d77e386d1b} + UnidadesMedida_view.dpk + Debug + AnyCPU + DCC32 + ..\..\..\..\Output\Debug\Cliente\UnidadesMedida_view.bpl + + + 7.0 + False + False + 0 + .\ + .\ + .\ + ..\..\..\..\Output\Release\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + RELEASE + + + 7.0 + .\ + .\ + .\ + ..\..\..\..\Output\Debug\Cliente + ..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + ..\..\..\Lib;..\..\Lib + + + Delphi.Personality + Package + +FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0UnidadesMedida_view.dpk + + + + + MainSource + + + + + + + + + +
fEditorUnidadesMedida
+ TfEditorUnidadesMedida +
+ +
+
+ + diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc new file mode 100644 index 00000000..153736af --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res b/Source/Modulos/Unidades de medida/Views/UnidadesMedida_view.res new file mode 100644 index 0000000000000000000000000000000000000000..02236de8db669bbe3315cfec9671db4bcf8913dc GIT binary patch literal 5028 zcmbW5&x;&Y5XWni1tkRCgZEiPMD`#nRcWtPt_oH5Yzu$VV-wb1Bwk_-XFg2H+pSN=U zyka(dZfonp#SD5!jcwWcvJG#kp*8>anb&hWI5@DjY24FJ`|-&Wn^$uqCj8E%Jsr>a z(f=18FcLdGW67gkv_9X9SKG|36^E%gpYEy6iCd_cw7Wj~iaqH`jCsjRp5)Tjjm3D> z0$yNKhb0agb9}Iy*6di=$H_r$wE8prvehh4CJk(k3R41_1_tIpwah8HE0zJ2j_A8qJC;h zPS-&^`8?-X2glUhT>Qz`_tI1oCl0I;m#I0|PPJD&x?6D9=#RXC$36y!sH@L4V9JUQ zO~GN_lzo;~$4gKBX=lH9n~Y`sLpL>Q25j^&9{X3YYiX$(S>$ceRjZ9(sJ1i3RjRX$ zJu%I-9czh^DgT^)7wf?X1I?kkwO%pV4}9frWWqiC{m|pl-!`rHskb%S2V!cllLNls zE@6uUea$64TFH%f9$nE+PL0j$(Csl@jKP6E`|sEbVb9)6dbzX;O}gsJTj}n*BLwN2Tb~Kb^L{5h^^(TFzVy_mCyAq;GlLVY)tF3_WiN; zt9xq60Zw2BHhBxa;yCwUat@+RjSJ72e5G}Da6ls%zW<5a6%IO|%y~`w-r(SEy&sHI zL+1cCHjDjtOmT-3ZMb?3gym;Z+``j8sjb>;9XPzh1Ge(To)-Pdp&Ip5b5maQQy<>x z;4$(~Uhbs_4A-Xo;KtoTef7S9KQ-lxGhB4nh09EwmCN_M=+8a!eWK2a1qWTe_u|K$ z>+h*>83&sj-d=;xdarjSeloa(>HLWs?{nM%q2JF2IMkyqd$b@%^>5HxIH;ZY;n(Z; z`YV@X*6eMVNk4OW=Xi}Y7w2AH*r}hhAN!-V;LE^FW1cqe-%{<%KE%1>{(@uVA|LvF z|J6pX*Qr*1#WC+WyTI~!tifW$(x@{fY0n3w~h7eA|@stGrQv zano30;rWe#Pb24Q4SWw4<$gm$!H@c@ue~+n9nIRryEg0(+$zOst?!S#pU1kqlj4xy z?W|eF_rC5r|L#bP*?9l?`BR^oVDRJqA{V;Q?%brE8m88~7veY6SckRvIty{HpUhO;SN#DLEo$afXFl8=h$ZPu>i@PdBM=dt#yd=JphyT;Fi zIQqF4Zk}DR{Jtr;c?QAeNiOT~8RIN^y{oa_S@$Jhp*ytayUTk9_Q0WuHno^O%=2Eo zjKgr|XJEi(>X)&p@p#YD9yx%u`Y?vAdl!-udqj-iGgab^KEC$~j?P2=j!d8D-E*uG zP@i!u@lN!|@m<2%KqGbIPNWY$KVy5_|JC4MkPW+e z&io&azTZ-w4PUlv<9{JH&t1~k4ZCi&K0mV0)w=2kwc}k;o9EZfKmQ?L7$cFZqN!(7 z79-yEk6(P?x;?UocE|SZwq23GYqykn-@dl{ihArZyHd3)g}Zi19ANaOvTbPezTLA2 zwx{?Xq zvHQZlyTagY$NyOKw|y4255yC-x9uCPj3;=GabGB6&%V;Sd-4zMTQSKeVy~4PR1MtZ zO>e9~)aWzC-dDEorTx(gLsKo$y&SWuepUNrCv(HOCGxmqW^eg!hl+i1zpKb;y)Rt+ GWAk6yB6aNm literal 0 HcmV?d00001 diff --git a/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm new file mode 100644 index 00000000..9248e483 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.dfm @@ -0,0 +1,144 @@ +object fEditorUnidadesMedida: TfEditorUnidadesMedida + Left = 453 + Top = 234 + ActiveControl = ListaUnidadesMedida + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'Administraci'#243'n de unidades de medida' + ClientHeight = 494 + ClientWidth = 404 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnClose = CustomEditorClose + OnShow = FormShow + InstanceID = 0 + ReadOnly = False + PixelsPerInch = 96 + TextHeight = 13 + object bAceptar: TButton + Left = 235 + Top = 462 + Width = 75 + Height = 23 + Action = actAceptar + Default = True + TabOrder = 1 + end + object bCancelar: TButton + Left = 321 + Top = 462 + Width = 75 + Height = 23 + Action = actCancelar + Cancel = True + TabOrder = 2 + end + object PageControl1: TPageControl + Left = 8 + Top = 8 + Width = 390 + Height = 442 + ActivePage = TabSheet1 + TabOrder = 0 + object TabSheet1: TTabSheet + Caption = 'Unidades de medida' + object Label1: TLabel + Left = 10 + Top = 12 + Width = 190 + Height = 13 + Caption = 'Lista de unidades de medida disponibles' + end + object Label2: TLabel + Left = 10 + Top = 326 + Width = 171 + Height = 13 + Caption = 'A'#241'adir una nueva unidad de medida' + end + object Bevel1: TBevel + Left = 187 + Top = 330 + Width = 189 + Height = 5 + Shape = bsBottomLine + end + object eCategoria: TLabel + Left = 18 + Top = 353 + Width = 40 + Height = 13 + Caption = 'Nombre:' + end + object ListaUnidadesMedida: TDBLookupListBox + Left = 8 + Top = 31 + Width = 262 + Height = 277 + KeyField = 'RecID' + ListField = 'DESCRIPCION' + ListSource = DADataSource + TabOrder = 0 + end + object bEliminar: TButton + Left = 281 + Top = 31 + Width = 95 + Height = 23 + Action = actEliminar + TabOrder = 1 + end + object editUnidadMedida: TEdit + Left = 64 + Top = 349 + Width = 312 + Height = 21 + TabOrder = 2 + end + object bAnadir: TButton + Left = 281 + Top = 382 + Width = 95 + Height = 23 + Action = actAnadir + TabOrder = 3 + end + end + end + object ActionList1: TActionList + Left = 144 + Top = 16 + object actAnadir: TAction + Caption = '&A'#241'adir' + OnExecute = actAnadirExecute + OnUpdate = actAnadirUpdate + end + object actEliminar: TAction + Caption = '&Eliminar' + OnExecute = actEliminarExecute + OnUpdate = actEliminarUpdate + end + object actAceptar: TAction + Caption = 'A&ceptar' + OnExecute = actAceptarExecute + end + object actCancelar: TAction + Caption = '&Cancelar' + OnExecute = actCancelarExecute + end + object actCerrar: TAction + Caption = 'actCerrar' + OnExecute = actCerrarExecute + end + end + object DADataSource: TDADataSource + Left = 168 + Top = 16 + end +end diff --git a/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas new file mode 100644 index 00000000..7fa2c9f0 --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uEditorUnidadesMedida.pas @@ -0,0 +1,180 @@ +{ +=============================================================================== + Copyright (©) 2006. Rodax Software. +=============================================================================== + Los contenidos de este fichero son propiedad de Rodax Software titular del + copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, + en su totalidad o en parte, con el permiso escrito de Rodax Software, o de + acuerdo con los términos y condiciones establecidas en el acuerdo/contrato + bajo el que se suministra. + ----------------------------------------------------------------------------- + Web: www.rodax-software.com +=============================================================================== + Fecha primera versión: 22-05-2006 + Versión actual: 1.0.0 + Fecha versión actual: 22-05-2006 +=============================================================================== + Modificaciones: + + Fecha Comentarios + --------------------------------------------------------------------------- +=============================================================================== +} + +unit uEditorUnidadesMedida; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, DB, StdCtrls, DBCtrls, uDADataTable, ActnList, + uIEditorUnidadesMedida, uCustomEditor, uGUIBase, ExtCtrls, + ComCtrls, uBizUnidadesMedida, uUnidadesMedidaController, uDAInterfaces; + +type + TfEditorUnidadesMedida = class(TCustomEditor, IEditorUnidadesMedida) + ActionList1: TActionList; + DADataSource: TDADataSource; + ListaUnidadesMedida: TDBLookupListBox; + actAnadir: TAction; + actEliminar: TAction; + bEliminar: TButton; + actAceptar: TAction; + actCancelar: TAction; + bAceptar: TButton; + bCancelar: TButton; + actCerrar: TAction; + PageControl1: TPageControl; + TabSheet1: TTabSheet; + Label1: TLabel; + Label2: TLabel; + Bevel1: TBevel; + eCategoria: TLabel; + editUnidadMedida: TEdit; + bAnadir: TButton; + procedure FormShow(Sender: TObject); + procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); + + procedure actAnadirExecute(Sender: TObject); + procedure actEliminarExecute(Sender: TObject); + procedure actAceptarExecute(Sender: TObject); + procedure actCancelarExecute(Sender: TObject); + procedure actCerrarExecute(Sender: TObject); + procedure actAnadirUpdate(Sender: TObject); + procedure actEliminarUpdate(Sender: TObject); + protected + FUnidadesMedida: IBizUnidadMedida; + FController: IUnidadesMedidaController; + function GetUnidadesMedida: IBizUnidadMedida; + procedure SetUnidadesMedida(const Value: IBizUnidadMedida); + function GetController : IUnidadesMedidaController; + procedure SetController (const Value : IUnidadesMedidaController); + public + property UnidadesMedida: IBizUnidadMedida read GetUnidadesMedida write SetUnidadesMedida; + property Controller : IUnidadesMedidaController read GetController write SetController; + end; + + +implementation +{$R *.dfm} + +{ TfEditorUnidadesMedida } + +uses + uDialogUtils; + +function TfEditorUnidadesMedida.GetController: IUnidadesMedidaController; +begin + Result := FController; +end; + +function TfEditorUnidadesMedida.GetUnidadesMedida: IBizUnidadMedida; +begin + Result := FUnidadesMedida; +end; + +procedure TfEditorUnidadesMedida.SetController(const Value: IUnidadesMedidaController); +begin + FController := Value; +end; + +procedure TfEditorUnidadesMedida.SetUnidadesMedida(const Value: IBizUnidadMedida); +begin + FUnidadesMedida := Value; + DADataSource.DataTable := (FUnidadesMedida as IBizUnidadMedida).DataTable; + DADataSource.DataTable.Open; +end; + +procedure TfEditorUnidadesMedida.actAnadirExecute(Sender: TObject); +begin + if not FController.Localizar(UnidadesMedida, editUnidadMedida.Text) then + begin + UnidadesMedida.Append; + UnidadesMedida.DESCRIPCION := editUnidadMedida.Text; + UnidadesMedida.Post; + editUnidadMedida.Clear; + ListaUnidadesMedida.SetFocus; + end + else + ShowErrorMessage('Ya existe la unidad ' + editUnidadMedida.Text, + 'Ya existe la unidad ''' + editUnidadMedida.Text + ''' en la lista.'); +end; + +procedure TfEditorUnidadesMedida.actEliminarExecute(Sender: TObject); +begin + UnidadesMedida.Delete; + ListaUnidadesMedida.SetFocus; +end; + +procedure TfEditorUnidadesMedida.actEliminarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (FUnidadesMedida.DataTable.RecordCount > 0) and + (Length(ListaUnidadesMedida.SelectedItem) > 0); + +end; + +procedure TfEditorUnidadesMedida.CustomEditorClose(Sender: TObject; var Action: TCloseAction); +begin + FUnidadesMedida := Nil; + FController := Nil; +end; + +procedure TfEditorUnidadesMedida.actAceptarExecute(Sender: TObject); +begin + try + UnidadesMedida.DataTable.ApplyUpdates; + except + on E : Exception do begin + UnidadesMedida.DataTable.CancelUpdates; + ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E); + exit; + end; + end; + actCerrar.Execute; +end; + +procedure TfEditorUnidadesMedida.actCancelarExecute(Sender: TObject); +begin + UnidadesMedida.DataTable.CancelUpdates; + actCerrar.Execute; +end; + +procedure TfEditorUnidadesMedida.actCerrarExecute(Sender: TObject); +begin + Close; +end; + +procedure TfEditorUnidadesMedida.actAnadirUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := (Length(editUnidadMedida.Text) > 0) +end; + +procedure TfEditorUnidadesMedida.FormShow(Sender: TObject); +begin + if not FUnidadesMedida.DataTable.Active then + FUnidadesMedida.DataTable.Active := true; + + EditUnidadMedida.SetFocus; +end; + +end. diff --git a/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas new file mode 100644 index 00000000..99b112dc --- /dev/null +++ b/Source/Modulos/Unidades de medida/Views/uUnidadesMedidaViewRegister.pas @@ -0,0 +1,23 @@ +unit uUnidadesMedidaViewRegister; + +interface + +procedure RegisterViews; +procedure UnregisterViews; + +implementation + +uses + uEditorRegistryUtils, uEditorUnidadesMedida; + +procedure RegisterViews; +begin + EditorRegistry.RegisterClass(TfEditorUnidadesMedida, 'EditorUnidadesMedida'); +end; + +procedure UnregisterViews; +begin + EditorRegistry.UnRegisterClass(TfEditorUnidadesMedida); +end; + +end. diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index 1d131961..433677fe 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -355,6 +355,15 @@ + + + + + + + + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 98e1812d..9f87df6a 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -46,6 +46,7 @@ const IsrvAlbaranesCliente_IID : TGUID = '{6E910718-9AB0-47BB-9875-B0DE66A68D7A}'; IsrvAlbaranesProveedor_IID : TGUID = '{66B71884-5CE4-4574-B825-60CDA956B628}'; IsrvReferencias_IID : TGUID = '{B957528D-3BE1-412D-A35E-801C97CCD252}'; + IsrvUnidadesMedida_IID : TGUID = '{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}'; { Event ID's } @@ -74,6 +75,7 @@ type IsrvAlbaranesCliente = interface; IsrvAlbaranesProveedor = interface; IsrvReferencias = interface; + IsrvUnidadesMedida = interface; TRdxEmpresasArray = class; @@ -583,6 +585,23 @@ type function IncrementarValorReferencia(const NombreReferencia: String; const Valor: String; const EmpresaID: Integer): Boolean; end; + { IsrvUnidadesMedida } + IsrvUnidadesMedida = interface(IDataAbstractService) + ['{8B4C72F0-5ACE-46FF-9F00-D70C2B611652}'] + end; + + { CosrvUnidadesMedida } + CosrvUnidadesMedida = class + class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida; + end; + + { TsrvUnidadesMedida_Proxy } + TsrvUnidadesMedida_Proxy = class(TDataAbstractService_Proxy, IsrvUnidadesMedida) + protected + function __GetInterfaceName:string; override; + + end; + implementation uses @@ -1482,6 +1501,18 @@ begin end end; +{ CosrvUnidadesMedida } + +class function CosrvUnidadesMedida.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IsrvUnidadesMedida; +begin + result := TsrvUnidadesMedida_Proxy.Create(aMessage, aTransportChannel); +end; + +function TsrvUnidadesMedida_Proxy.__GetInterfaceName:string; +begin + result := 'srvUnidadesMedida'; +end; + initialization RegisterROClass(TRdxLoginInfo); RegisterROClass(TRdxEmpresasArray); @@ -1508,6 +1539,7 @@ initialization RegisterProxyClass(IsrvAlbaranesCliente_IID, TsrvAlbaranesCliente_Proxy); RegisterProxyClass(IsrvAlbaranesProveedor_IID, TsrvAlbaranesProveedor_Proxy); RegisterProxyClass(IsrvReferencias_IID, TsrvReferencias_Proxy); + RegisterProxyClass(IsrvUnidadesMedida_IID, TsrvUnidadesMedida_Proxy); finalization @@ -1536,5 +1568,6 @@ finalization UnregisterProxyClass(IsrvAlbaranesCliente_IID); UnregisterProxyClass(IsrvAlbaranesProveedor_IID); UnregisterProxyClass(IsrvReferencias_IID); + UnregisterProxyClass(IsrvUnidadesMedida_IID); end. diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index b7bd0795..8bda099b 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -177,6 +177,12 @@ type procedure Invoke_IncrementarValorReferencia(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); end; + TsrvUnidadesMedida_Invoker = class(TDataAbstractService_Invoker) + private + protected + published + end; + implementation uses diff --git a/Source/Servicios/RODLFILE.res b/Source/Servicios/RODLFILE.res index 770ccaf3a243f4cbea0ec21c2b991a25ead85f64..7c622cc7ac619239299e23cb3e7ec0cd26d7e776 100644 GIT binary patch delta 139 zcmeyhk@4Ub#t8~cA0sy^DR@nuAjoH1TvQgCmzk27l3MJWngV1fDTI2u*eX>!n;9FM z8#+7bf+$@RGe>7#Co@ZDT}KNeCuc)*S3_4<%gGycRVORRr>j^vnK+vpxf$r1Iy$=o n6}!3VTDln+=(?C2I2$>c85)|I8chx~5}DkuY_ZwNYX=_y-pVL5 delta 20 ccmX@Oh4I%$#t8~ct0FckDR^z}^xnY-0A7p;VE_OC diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES index 47021c9348f3a78d04204043abfb5d9f096fb61a..25d9f2fd06a0f7993edca2bfb0f750c1ca71cc45 100644 GIT binary patch delta 77 zcmZ3pm2t&Z#tnBO7}rd`8zB!Q|3*YJ@=T75RAziJxi+$zIfp@Q^6yAl;VgzyhE#?! eATDOmVNhT&VlbGj8>P=~z+eSr8&6J+at8okfEW(| delta 81 zcmZ3nm2u5h#tnBO7&lD58zB!Q|3*YJ@=cD6RAziNxi+$zIgdeo^6yAl(G-S!hFpeB ihCGIJAWMfqfx(c$Y_fKgKBqB*6@v*7GE7d4at8pxD;RAnyCPU DCC32 ..\..\Output\Debug\Servidor\FactuGES_Server.exe + vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeUI;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;DbxCommonDriver;IndyCore;IndySystem;IndyProtocols;VclSmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;RemObjects_BPDX_D11;RemObjects_RODX_D11;RemObjects_Indy_D11;RemObjects_Synapse_D11;RemObjects_WebBroker_D11;DataAbstract_Core_D11;DataAbstract_DBXDriver_D11;DataAbstract_IDE_D11;DataAbstract_Scripting_D11;DataAbstract_SDACDriver_D11;sdac105;dac105;DataAbstract_SQLiteDriver_D11;cxEditorsD10;cxLibraryD10;dxThemeD10;cxDataD10;cxExtEditorsD10;cxGridD10;cxPageControlD10;cxSchedulerD10;cxTreeListD10;cxVerticalGridD10;dxBarD10;dxComnD10;dxBarDBNavD10;dxBarExtDBItemsD10;dxBarExtItemsD10;dxDockingD10;dxLayoutControlD10;dxNavBarD10;dxPSCoreD10;dxsbD10;dxPScxCommonD10;dxPSLnksD10;vclshlctrls;dxPScxExtCommonD10;dxPScxGridLnkD10;dxPScxPCProdD10;dxPScxScheduler2LnkD10;dxPScxTLLnkD10;dxPSdxLCLnkD10;dxPsPrVwAdvD10;pckMD5;pckUCDataConnector;pckUserControl_RT;PluginSDK_D10R;PNG_D10;PngComponentsD10;tb2k_d10;tbx_d10;JclVcl;Jcl;JvXPCtrlsD11R;JvCoreD11R;JvSystemD11R;JvStdCtrlsD11R;JvAppFrmD11R;JvBandsD11R;JvDBD11R;JvDlgsD11R;JvBDED11R;JvCmpD11R;JvCryptD11R;JvCtrlsD11R;JvCustomD11R;JvDockingD11R;JvDotNetCtrlsD11R;JvEDID11R;JvGlobusD11R;JvHMID11R;JvInterpreterD11R;JvJansD11R;JvManagedThreadsD11R;JvMMD11R;JvNetD11R;JvPageCompsD11R;JvPluginD11R;JvPrintPreviewD11R;JvRuntimeDesignD11R;JvTimeFrameworkD11R;JvUIBD11R;JvValidatorsD11R;JvWizardD11R;pckUCADOConn;pckUCBDEConn;pckUCIBXConn;pckUCMidasConn;cxIntlPrintSys3D10;cxExportD10;cxIntl5D10;GUISDK_D11;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100 7.0 @@ -21,8 +22,14 @@ 7.0 3 ..\..\Output\Debug\Servidor - DEBUG;EUREKALOG;EUREKALOG_VER6 + DEBUG; True + True + True + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 + $(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10 Delphi.Personality @@ -32,7 +39,36 @@ - RemObjects Pascal Script - RemObjects SDK 3.0 Integration + + + + + + + + + + + + + + + + + + + + + + + + + + + + ExpressPrinting System by Developer Express Inc. + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components FactuGES_Server.dpr @@ -107,6 +143,7 @@ + @@ -165,6 +202,43 @@ + + + + + + + + + + + + + + + + + + + + + + +
srvUnidadesMedida
+ TDataAbstractService +
+ + + + + + + + + + + + @@ -218,7 +292,7 @@