git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@272 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
9f7d7df6d1
commit
e84aca044e
@ -1,23 +0,0 @@
|
||||
unit uInfVentasArticuloViewRegister;
|
||||
|
||||
interface
|
||||
|
||||
procedure RegisterViews;
|
||||
procedure UnregisterViews;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uEditorRegistryUtils, uEditorInfVentasArticulo;
|
||||
|
||||
procedure RegisterViews;
|
||||
begin
|
||||
EditorRegistry.RegisterClass(TfEditorInfVentasArticulo, 'EditorInfVentasArticulo');
|
||||
end;
|
||||
|
||||
procedure UnregisterViews;
|
||||
begin
|
||||
EditorRegistry.UnRegisterClass(TfEditorInfVentasArticulo);
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1,330 +0,0 @@
|
||||
object PluginVentasArticulo: TPluginVentasArticulo
|
||||
OldCreateOrder = True
|
||||
DefaultAction = actVentasArticulo
|
||||
Description = 'Informes'
|
||||
ModuleMenu = MainMenu
|
||||
ModuleName = 'InfVentasArticulo'
|
||||
SmallImages = SmallImages
|
||||
LargeImages = LargeImages
|
||||
Author = 'Rodax Software'
|
||||
Version = '1.0.0'
|
||||
Height = 252
|
||||
Width = 401
|
||||
object LargeImages: TPngImageList
|
||||
Height = 24
|
||||
Width = 24
|
||||
PngImages = <
|
||||
item
|
||||
PngImage.Data = {
|
||||
89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
|
||||
F80000000970485973000017120000171201679FD25200000A4D694343505068
|
||||
6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF
|
||||
F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A
|
||||
561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5
|
||||
7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8
|
||||
1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC
|
||||
01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200
|
||||
C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05
|
||||
00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2
|
||||
00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C
|
||||
CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97
|
||||
4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313
|
||||
48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F
|
||||
223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA
|
||||
560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED
|
||||
2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383
|
||||
FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A
|
||||
F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86
|
||||
4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432
|
||||
79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0
|
||||
812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C
|
||||
0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70
|
||||
170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261
|
||||
48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA
|
||||
90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F
|
||||
5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961
|
||||
5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402
|
||||
8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2
|
||||
272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93
|
||||
48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90
|
||||
6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452
|
||||
A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650
|
||||
2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83
|
||||
1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7
|
||||
192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295
|
||||
3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9
|
||||
09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685
|
||||
46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9
|
||||
EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C
|
||||
4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED
|
||||
EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB
|
||||
79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31
|
||||
3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87
|
||||
67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94
|
||||
6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85
|
||||
A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6
|
||||
5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29
|
||||
D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B
|
||||
743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6
|
||||
4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD
|
||||
D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7
|
||||
C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E
|
||||
3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B
|
||||
FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5
|
||||
0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1
|
||||
15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0
|
||||
476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67
|
||||
BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845
|
||||
F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC
|
||||
A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7
|
||||
6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA
|
||||
68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C
|
||||
949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423
|
||||
F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433
|
||||
DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317
|
||||
772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2
|
||||
A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17
|
||||
955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4
|
||||
EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E
|
||||
CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9
|
||||
26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD
|
||||
8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF
|
||||
B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C
|
||||
7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD
|
||||
EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293
|
||||
E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7
|
||||
5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F
|
||||
EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6
|
||||
EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07
|
||||
FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247
|
||||
CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73
|
||||
ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC
|
||||
CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F
|
||||
F73EE77CFEFC2FF784F3FB25D29F33000003994944415478DADD956B4C536718
|
||||
C7FFA73D948A144924A5748245A41871C14B0C83CD006A362A23A27C5051BE28
|
||||
5B30F116257ED02D210CA323982C3A4D0CC8166FA87138A651515462B0782B58
|
||||
A1CC4B90724B0B4DB958E9E55C77CE99769A490AEABEEC4D4E9EF39C93F7FF7B
|
||||
2EEF85E0791EFFE520FE1F0082203E58C8A801DF6607BE153445FF75E01F0520
|
||||
8A276FDF0C59F54154B4FC0DF9688073A78FF05FA42F47A44183261B2066218E
|
||||
6F789EF860C0AD4A2DAFFFBA1976BB1D56AB15EAC21CBC2ED35B191CDDBF79C2
|
||||
9DD687D72075C50118CF6FC160C46109525A5A8AE26D392828FAF9DF80759BE6
|
||||
8C4B98E758DC3FB5471247EF6E0CDB3AD0DEAB465EB10C0FEA57E2C73DB79198
|
||||
94820D3B0E12130604126FB9DF87AB57AD78F4C48DFABBEDEF0664FE9A3926A0
|
||||
844C1D539C6368985B060203DE2772515C7C5A5B87260E10C5C5C9A6B365485D
|
||||
A8F28BAF2D2151535D00AB7D0A7CEC545014851783BDE8B298F0E8E133442CC8
|
||||
275C2EDFF84AF4796711A6CB2C98153722F9EBCBC260D87E0486845024C445A3
|
||||
C1D882D90933209791B03CB5E2FAA51A7883356AF728ED1833038EA1C0D2B464
|
||||
CBCA4DF82ADE88DFEA38FC7E4F89FD3FEDC40CBD017A5D14144124B67C7700B9
|
||||
D91998191B83510F85271D3DB872F34E55778F63E33B016F8AE7179A31DCDF89
|
||||
B8995AECDBA54357BF0A4E7605D23E4B0429974146C8B0A3F810B23317214E37
|
||||
0D1E2F030FC5A0F1AE197537EE190296C879281BB1FA4454EC8D927AD1D01A8F
|
||||
E494358852878313E62A150A14951C468E210DBA182DDC5E1A3E8A469FDD8963
|
||||
672EFDF216E0CDC8A59541BFB2CC3FB6CE92862F172F836A5230E4A41CCFBB6D
|
||||
F87E6F059212E3B128651E5C6EAF50360554612A549DAA35F9017985FA80E2E2
|
||||
FFBAF6742CC9C8C264651094CA60DC6834E1CC1F37E17A318A984F22E1F151D0
|
||||
6AD458929E8AAA93B5CD7EC0AA0DB168BC680CB89BFF1C9A8F8CA5F9981A1E2A
|
||||
F95E9FB084CD8F11A989408C5603AF501EF15B77DF002A8F9F3FE60758CC4DE3
|
||||
3A8BD8C93A24676EC5C2B9B3C45D22F401082249A9EE6E8F0F0CCB8362183408
|
||||
99D55EB896E53FAE2BCB37F1D567AF0704107212D33E5D8ADCD5F9D0456BA49B
|
||||
8B6538709C28CC8211DEDB9F75A2E642FD89DEEEBE8209DFC91B7F388A910147
|
||||
54982AB45C686C5EBC2E5AEA05CB71181A7909CBE30E3436351FB7F53B76122C
|
||||
6B7F2FC0A87310AE971E05182E6B52A832372424640E4D33BC7370B8CD61739E
|
||||
F3B0D4658582A458AF0F7F0103967A78C20D9F140000000049454E44AE426082}
|
||||
Name = 'PngImage0'
|
||||
Background = clWindow
|
||||
end>
|
||||
Left = 232
|
||||
Top = 16
|
||||
Bitmap = {}
|
||||
end
|
||||
object ModuleActionList: TActionList
|
||||
Images = LargeImages
|
||||
Left = 40
|
||||
Top = 72
|
||||
object actVentasArticulo: TAction
|
||||
Category = 'Informes'
|
||||
Caption = 'Ventas articulo'
|
||||
ImageIndex = 0
|
||||
OnExecute = actVentasArticuloExecute
|
||||
end
|
||||
end
|
||||
object MainMenu: TMainMenu
|
||||
Images = LargeImages
|
||||
Left = 40
|
||||
Top = 16
|
||||
object HistoricoMovimientos1: TMenuItem
|
||||
Caption = 'Log'#237'stica'
|
||||
object N1: TMenuItem
|
||||
Tag = 889
|
||||
Caption = '-'
|
||||
end
|
||||
object HistoricoMovimiento1: TMenuItem
|
||||
Tag = 103
|
||||
Action = actVentasArticulo
|
||||
end
|
||||
end
|
||||
end
|
||||
object SmallImages: TPngImageList
|
||||
PngImages = <
|
||||
item
|
||||
PngImage.Data = {
|
||||
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
|
||||
610000000970485973000017120000171201679FD2520000016C4944415478DA
|
||||
63FCFFFF3F0325809114C53F0C18C0B6715C40E823DA009066D6A85C86DFCB26
|
||||
332CBAC0C09006D54B9401276630FC7FA27489E1CDA5A50C4C259D6031B80173
|
||||
7A72F006820ECF14063D9F290C2F6F6D635878C88C41AAA18181A927072C9752
|
||||
3285116C404C8E0E56CD171664C0358370488B0CC3C563090C7F7FFD60686FDC
|
||||
CFA0AD6FC90037C06381038AE60E060D0CCD2A357B1856B9CC61387BFC3EC3AE
|
||||
5D0F182EDDFCC680D505F86C06E10B679F631A00734104EB690683DFB10CE26A
|
||||
5E2836C3C062B34E862B573FE176C182A5DC0C09B1910C17E6B180359F3F1C03
|
||||
B7F9DFEF9F60FAFAED5FB85D70A7C5056E18B2E64B175EA37813AB0BC08A7F42
|
||||
34FC816A84D90C72B663A82BC3CB4B4718264CBECE5090ABC99094731661003E
|
||||
CD30676BA973C2357389483344446C82181099A6C27068E361822912E46C9866
|
||||
566E3E8660DF251003AE5E3C4E547E40D6CCC12FCCE06D3711929E41862C5FB5
|
||||
972843D0010013390BFAA171B8130000000049454E44AE426082}
|
||||
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
|
||||
940000000970485973000017120000171201679FD25200000A4D694343505068
|
||||
6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF
|
||||
F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A
|
||||
561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5
|
||||
7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8
|
||||
1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC
|
||||
01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200
|
||||
C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05
|
||||
00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2
|
||||
00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C
|
||||
CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97
|
||||
4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313
|
||||
48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F
|
||||
223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA
|
||||
560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED
|
||||
2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383
|
||||
FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A
|
||||
F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86
|
||||
4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432
|
||||
79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0
|
||||
812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C
|
||||
0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70
|
||||
170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261
|
||||
48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA
|
||||
90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F
|
||||
5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961
|
||||
5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402
|
||||
8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2
|
||||
272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93
|
||||
48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90
|
||||
6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452
|
||||
A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650
|
||||
2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83
|
||||
1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7
|
||||
192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295
|
||||
3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9
|
||||
09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685
|
||||
46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9
|
||||
EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C
|
||||
4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED
|
||||
EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB
|
||||
79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31
|
||||
3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87
|
||||
67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94
|
||||
6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85
|
||||
A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6
|
||||
5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29
|
||||
D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B
|
||||
743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6
|
||||
4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD
|
||||
D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7
|
||||
C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E
|
||||
3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B
|
||||
FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5
|
||||
0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1
|
||||
15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0
|
||||
476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67
|
||||
BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845
|
||||
F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC
|
||||
A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7
|
||||
6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA
|
||||
68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C
|
||||
949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423
|
||||
F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433
|
||||
DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317
|
||||
772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2
|
||||
A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17
|
||||
955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4
|
||||
EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E
|
||||
CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9
|
||||
26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD
|
||||
8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF
|
||||
B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C
|
||||
7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD
|
||||
EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293
|
||||
E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7
|
||||
5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F
|
||||
EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6
|
||||
EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07
|
||||
FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247
|
||||
CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73
|
||||
ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC
|
||||
CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F
|
||||
F73EE77CFEFC2FF784F3FB25D29F33000004D04944415478DAB5D67B4C53571C
|
||||
07F0EFAD158421EF47784C1E6188802E76EAC6985308CCB82D03C6080B6AE644
|
||||
890B2EC384FDB1C581D9D823664BF6874B868A5930640C2C3E46DC446860C196
|
||||
0DCA73C884858A3C4691475B2B8F7B7BEFDD39B7D06120F2189CA43DBDCDE9F9
|
||||
DCDFEF9CDFB965445104C330588B56EC2C13697FC024D80066AD408ABD7D2A0B
|
||||
B2DE4BD0280D787108CC9A81140B7614109DE20AA80DE89C7245F380498A74D5
|
||||
C1CB2505E24B7B13D176200009631609A3EDCEE843340EF3AB1BE1ADA21C91F3
|
||||
8C839F9F1FC60D0F60CA7E055E43D232E2FA10F015C9E8AA81353F1C1777C547
|
||||
41D6DF889FEEEEC5A6407F180D8FC09C4E86A64594303A6E55C0B9D830678660
|
||||
99864A970C9665919F9F8FFEFEFED5DBA50B61067D1FA60C2D782B3FE031CC06
|
||||
167EF3BEB8122CD4D3822761A7B393A4714773CE32F3C08327A29685D597B4D8
|
||||
30FDB411023F0DE3F0A00DD3AA52C90D7038F3A50691CF46DBD015814BC55AB4
|
||||
FFA0B2F21EDAEE4EA0FA8FCE95814BC5040B8BB6D6D1A581DFDE787D41EC0553
|
||||
FE3C6C543F8E9E1139CA1A15D8B23301DEF63AC819139E761B85601E80AAEAEF
|
||||
9547F8595E1538311159AF954B589BCE057DE23E04856C85AFB707C60C26B838
|
||||
3B616A9A436FBF1E5DDD7F62ACAB0A7FB5752E1FBC7AA11EED7D6628C85D37B9
|
||||
9E44F8A63AD807A4226A73081C37D8C16EBD1CEF7EF0053E3E79183E5E1E304F
|
||||
4CC1649E44736B276A6F2A71BDBC7879297DF87B36725EB6834ED58946B902EE
|
||||
7B32B03D2A145EEE1B41E7B0F002D28EE522EFC30CF8FB7A83E5784C9248C78D
|
||||
66D437B6A3A9BDEB9DCB05A78A168D5014785CBBD88006752DB214C1D0DE17A0
|
||||
0BCBC01BAFC6C3DFDB558A8CE3797004483DFA8915F4F321D716820A0465313C
|
||||
62C4D55F6A06FA07C6229E08528CEEB8F4C36AF4747722D04B847F642C12538E
|
||||
4011190CD78D8ED20969B108E02C0B83F47B0389B2B5A35BFC55557F6449292D
|
||||
CEDB8FE0B048A4C76E80D95981E7762622D0D703EBE57209140481A03CD232F3
|
||||
909B9381003F6B4A598B35F2C9291683FA319C2B52962C08CE46C673ACB56727
|
||||
2170D6DA2AAD8BC0EEE87DF0F771C53A994C1A2F90392A6EA971B65009C5B670
|
||||
A425C54B91D1751578111E9EEE181A1E4361F115CD3C904ECACF4C3E5BC0C29C
|
||||
EBB2DB518889DE4FCAC0053219233D7328987BA6104E4F39E23775339C49AAC9
|
||||
57A00734CD42F67B873041A22CBC545EFF18B818467BA53A183B76A5C2974428
|
||||
9F89904E7EA7FB1E4AAF5563FBD6CD88DBBDC3B6AE1CE9695D0E0C8DE0BBF325
|
||||
A53630FD78D8A218ED1BBADDC03AA690FA0B92EA4F5A431A0D79E3C95AF2022D
|
||||
115E02694A67374D737B97F8F30DD5311B9896118CBA0AF5A2A70D2BD8413B1C
|
||||
8784D83D707371827C9D8CA44E241B876E9E1994B7BE389E46C7423F328E52E5
|
||||
4DBDAE47176E033B5A354B3ABC699B727806913187B02D22545A2F869149C54F
|
||||
414102AD07C134CB6164DC004D431B6AEB1A339B2A0BCEDB9EF817BE3E21FE58
|
||||
5ABD64D439E879C42424212A3C144E8EF6D612218DA69496C4A3894972B44D40
|
||||
DBDC014DF515DCAEA9F8EF685B4E9BFB77E4CDCC4F337D3CDD3FDF1216E211E0
|
||||
EB4D02652490632DE8E91D10B52D1D0F74F7073F6AAEFCFEA2EDF7FF07A42DF9
|
||||
609EF784C0A6928FB10E0EF6811C278806A3B1979DE654C2A4A54C5B7B6E64EE
|
||||
F87F01D93AAAB3863CD3F20000000049454E44AE426082}
|
||||
Name = 'PngImage0'
|
||||
Background = clWindow
|
||||
end>
|
||||
Left = 232
|
||||
Top = 80
|
||||
Bitmap = {}
|
||||
end
|
||||
end
|
||||
@ -1,77 +0,0 @@
|
||||
unit uPluginInfVentasArticulo;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
|
||||
ImgList, Controls, PngImageList;
|
||||
|
||||
type
|
||||
IMCInfVentasArticulo = interface(IInterface)
|
||||
['{6AB7F54B-AEAD-4317-907C-B54758666AB8}']
|
||||
end;
|
||||
|
||||
TPluginInfVentasArticulo = class(TModuleController, IMCInfVentasArticulo)
|
||||
actVentasArticulo: TAction;
|
||||
ExtraImages: TPngImageList;
|
||||
LargeImages: TPngImageList;
|
||||
MainMenu: TMainMenu;
|
||||
ModuleActionList: TActionList;
|
||||
SmallImages: TPngImageList;
|
||||
HistoricoMovimientos1: TMenuItem;
|
||||
HistoricoMovimiento1: TMenuItem;
|
||||
N1: TMenuItem;
|
||||
procedure actVentasArticuloExecute(Sender: TObject);
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
Forms, Dialogs, SysUtils;
|
||||
// uHistoricoMovimientosController, uBizHistoricoMovimientos, uHistoricoMovimientosViewRegister;
|
||||
|
||||
function GetModule : TModuleController;
|
||||
begin
|
||||
Result := TPluginInfVentasArticulo.Create(NIL);
|
||||
end;
|
||||
|
||||
exports
|
||||
GetModule name GET_MODULE_FUNC;
|
||||
|
||||
procedure TPluginInfVentasArticulo.actVentasArticuloExecute(Sender: TObject);
|
||||
{var
|
||||
AHistoricoMovimientosController : IHistoricoMovimientosController;
|
||||
AHistoricoMovimientos : IBizHistoricoMovimientos;
|
||||
}
|
||||
begin
|
||||
showmessage('Hola');
|
||||
{ AHistoricoMovimientosController := THistoricoMovimientosController.Create;
|
||||
AHistoricoMovimientos := (AHistoricoMovimientosController.BuscarTodos as IBizHistoricoMovimientos);
|
||||
AHistoricoMovimientosController.VerTodos(AHistoricoMovimientos);
|
||||
}
|
||||
end;
|
||||
|
||||
constructor TPluginVentasArticulo.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
// uInfVentasArticuloViewRegister.RegisterViews;
|
||||
end;
|
||||
|
||||
destructor TPluginVentasArticulo.Destroy;
|
||||
begin
|
||||
// uInfVentasArticuloViewRegister.UnregisterViews;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterModuleClass(TPluginInfVentasArticulo);
|
||||
|
||||
finalization
|
||||
UnRegisterModuleClass(TPluginInfVentasArticulo);
|
||||
|
||||
end.
|
||||
@ -1,23 +0,0 @@
|
||||
unit uInformesBaseViewRegister;
|
||||
|
||||
interface
|
||||
|
||||
procedure RegisterViews;
|
||||
procedure UnregisterViews;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
uEditorRegistryUtils, uEditorInformesBase;
|
||||
|
||||
procedure RegisterViews;
|
||||
begin
|
||||
EditorRegistry.RegisterClass(TfEditorInformesBase, 'EditorInformesBase');
|
||||
end;
|
||||
|
||||
procedure UnregisterViews;
|
||||
begin
|
||||
EditorRegistry.UnRegisterClass(TfEditorInformesBase);
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1,179 +0,0 @@
|
||||
unit uViewInforme;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms,
|
||||
Dialogs, uViewBase, TBXDkPanels, StdCtrls, ComCtrls, TB2Dock,
|
||||
uViewAgrupaciones, uCustomView, uViewColumnas, ImgList, PngImageList,
|
||||
ActnList, uViewInformeGrid, uBizInformesBase, uViewSumarios,
|
||||
uViewInformeParametros, uViewFiltros, cxStyles, Controls;
|
||||
|
||||
type
|
||||
IViewInforme = interface(IViewBase)
|
||||
['{D716BE6B-1F41-4825-9385-0231D2AEF819}']
|
||||
function GetModificable: Boolean;
|
||||
procedure SetModificable(const Value: Boolean);
|
||||
property Modificable : Boolean read GetModificable write SetModificable;
|
||||
|
||||
function GetInforme: IBizInforme;
|
||||
procedure SetInforme(const Value: IBizInforme);
|
||||
property Informe: IBizInforme read GetInforme write SetInforme;
|
||||
|
||||
function GetOnViewChanged : TNotifyEvent;
|
||||
procedure SetOnViewChanged(const Value : TNotifyEvent);
|
||||
property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged;
|
||||
end;
|
||||
|
||||
TfrViewInforme = class(TfrViewBase, IViewInforme)
|
||||
TBXMultiDock1: TTBXMultiDock;
|
||||
pnlParametros: TTBXDockablePanel;
|
||||
TBXAlignmentPanel2: TTBXAlignmentPanel;
|
||||
TBXLink1: TTBXLink;
|
||||
TBXLink5: TTBXLink;
|
||||
TBXLink2: TTBXLink;
|
||||
pcParametros: TPageControl;
|
||||
TabSheet5: TTabSheet;
|
||||
tsColumnas: TTabSheet;
|
||||
tsAgrupacion: TTabSheet;
|
||||
TBXAlignmentPanel3: TTBXAlignmentPanel;
|
||||
bRefrescar: TButton;
|
||||
pnlTareas: TTBXDockablePanel;
|
||||
TBXPageScroller1: TTBXPageScroller;
|
||||
TBXAlignmentPanel1: TTBXAlignmentPanel;
|
||||
bFiltros: TTBXLink;
|
||||
bSumarios: TTBXLink;
|
||||
pcTareas: TPageControl;
|
||||
tsSumarios: TTabSheet;
|
||||
tsFiltros: TTabSheet;
|
||||
frViewColumnas1: TfrViewColumnas;
|
||||
frViewAgrupaciones1: TfrViewAgrupaciones;
|
||||
SmallImages: TPngImageList;
|
||||
LargeImages: TPngImageList;
|
||||
EditorActionList: TActionList;
|
||||
actAgrupaciones: TAction;
|
||||
actColumnas: TAction;
|
||||
actSumarios: TAction;
|
||||
actFiltros: TAction;
|
||||
frViewSumarios1: TfrViewSumarios;
|
||||
actRefrescar: TAction;
|
||||
frViewFiltros1: TfrViewFiltros;
|
||||
procedure actColumnasExecute(Sender: TObject);
|
||||
procedure actSumariosExecute(Sender: TObject);
|
||||
procedure actFiltrosExecute(Sender: TObject);
|
||||
procedure actAgrupacionesExecute(Sender: TObject);
|
||||
protected
|
||||
FInforme : IBizInforme;
|
||||
FOnViewChanged : TNotifyEvent;
|
||||
FModificable : Boolean;
|
||||
procedure ActivarTarea (const ATarea : Integer); virtual;
|
||||
function GetInforme: IBizInforme; virtual;
|
||||
procedure SetInforme(const Value: IBizInforme); virtual;
|
||||
function GetOnViewChanged : TNotifyEvent; virtual;
|
||||
procedure SetOnViewChanged(const Value : TNotifyEvent); virtual;
|
||||
function GetModificable: Boolean; virtual;
|
||||
procedure SetModificable(const Value: Boolean); virtual;
|
||||
public
|
||||
property Modificable : Boolean read GetModificable write SetModificable;
|
||||
property OnViewChanged: TNotifyEvent read GetOnViewChanged write SetOnViewChanged;
|
||||
property Informe: IBizInforme read GetInforme write SetInforme;
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
const
|
||||
COLUMNAS = 1;
|
||||
AGRUPACIONES = 2;
|
||||
SUMARIOS = 3;
|
||||
FILTROS = 4;
|
||||
|
||||
|
||||
procedure TfrViewInforme.actColumnasExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ActivarTarea(COLUMNAS);
|
||||
frViewColumnas1.Refresh;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.ActivarTarea(const ATarea: Integer);
|
||||
begin
|
||||
case ATarea of
|
||||
COLUMNAS : pcParametros.ActivePage := tsColumnas;
|
||||
AGRUPACIONES : pcParametros.ActivePage := tsAgrupacion;
|
||||
SUMARIOS : pcTareas.ActivePage := tsSumarios;
|
||||
FILTROS : pcTareas.ActivePage := tsFiltros;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrViewInforme.GetInforme: IBizInforme;
|
||||
begin
|
||||
Result := FInforme;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.SetInforme(const Value: IBizInforme);
|
||||
begin
|
||||
FInforme := Value;
|
||||
frViewColumnas1.Refresh;
|
||||
frViewAgrupaciones1.Refresh;
|
||||
|
||||
// ¿Es modificable el Informe?
|
||||
// Self.Modificable := FInforme.EsModificable;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.actSumariosExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ActivarTarea(SUMARIOS);
|
||||
frViewSumarios1.Refresh;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.actFiltrosExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ActivarTarea(FILTROS);
|
||||
frViewFiltros1.Refresh;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.actAgrupacionesExecute(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ActivarTarea(AGRUPACIONES);
|
||||
frViewAgrupaciones1.Refresh;
|
||||
end;
|
||||
|
||||
function TfrViewInforme.GetOnViewChanged: TNotifyEvent;
|
||||
begin
|
||||
Result := FOnViewChanged;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.SetOnViewChanged(const Value: TNotifyEvent);
|
||||
begin
|
||||
FOnViewChanged := Value;
|
||||
end;
|
||||
|
||||
constructor TfrViewInforme.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
FModificable := False;
|
||||
pcParametros.ActivePage := tsColumnas;
|
||||
pcTareas.ActivePage := tsSumarios;
|
||||
FOnViewChanged := nil;
|
||||
end;
|
||||
|
||||
function TfrViewInforme.GetModificable: Boolean;
|
||||
begin
|
||||
Result := FModificable;
|
||||
end;
|
||||
|
||||
procedure TfrViewInforme.SetModificable(const Value: Boolean);
|
||||
begin
|
||||
FModificable := Value;
|
||||
|
||||
frViewColumnas1.Modificable := FModificable;
|
||||
frViewAgrupaciones1.Modificable := FModificable;
|
||||
end;
|
||||
|
||||
end.
|
||||
@ -1,325 +0,0 @@
|
||||
unit uViewSumarios;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, uViewBase, dxLayoutControl, cxControls, cxContainer, cxListBox,
|
||||
TBXDkPanels, ActnList, cxCustomData, cxGridDBTableView, cxGridTableView,
|
||||
cxGraphics, cxStyles, cxTL, cxTextEdit, cxDropDownEdit, ImgList,
|
||||
PngImageList, ComCtrls, JvExComCtrls, JvComCtrls, cxInplaceContainer,
|
||||
ExtCtrls, cxEdit, cxVGrid, TBXToolPals, uViewControlGrid,
|
||||
uViewParametrosControlGrid;
|
||||
|
||||
type
|
||||
IViewSumarios = interface(IViewParametrosControlGrid)
|
||||
['{4AEE3447-C6A4-491F-87E7-02CD255A7695}']
|
||||
end;
|
||||
|
||||
TfrViewSumarios = class(TfrViewParametrosControlGrid, IViewSumarios)
|
||||
PngImageList1: TPngImageList;
|
||||
vgSumarios: TcxVerticalGrid;
|
||||
TBXLabel1: TTBXLabel;
|
||||
cxStyleRepository1: TcxStyleRepository;
|
||||
cxStyleNombreColumna: TcxStyle;
|
||||
cxStyleCategoria: TcxStyle;
|
||||
cxStyleNombreColumnaInactivo: TcxStyle;
|
||||
cxStyleCategoriaInactivo: TcxStyle;
|
||||
cxStyleContentInactivo: TcxStyle;
|
||||
procedure vgSumariosEditorRowInitPopup(Sender: TObject);
|
||||
procedure vgSumariosEditorRowEditValueChanged(
|
||||
Sender: TObject);
|
||||
protected
|
||||
procedure RellenarArbolTotales;
|
||||
|
||||
function AnadirSumario(const ACaption : String;
|
||||
const AKind : TcxSummaryKind) : TcxEditorRow;
|
||||
|
||||
procedure RellenarTotalesPie;
|
||||
procedure RellenarTotalesGrupo(const AGroupName : String);
|
||||
procedure RellenarCategorias;
|
||||
procedure RellenarCategoria(const APosition : TcxSummaryPosition;
|
||||
const AGroupName : String = '');
|
||||
|
||||
procedure AplicarSumarioVista(const APosition : TcxSummaryPosition;
|
||||
const AColumnCaption : String; const AKind : TcxSummaryKind);
|
||||
procedure SetModificable(const Value: Boolean); override;
|
||||
public
|
||||
procedure Execute; override;
|
||||
procedure Refresh; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
uses
|
||||
DB, cxGridPopupMenuConsts;
|
||||
|
||||
var
|
||||
SumaryKindStrArray : array[skNone..skAverage] of String
|
||||
= ('', 'Sumar', 'Mínimo', 'Máximo', 'Contar', 'Promedio');
|
||||
|
||||
procedure TfrViewSumarios.Refresh;
|
||||
begin
|
||||
RellenarCategorias;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.RellenarArbolTotales;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
// Recuperar las agrupaciones del grid
|
||||
for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do
|
||||
begin
|
||||
if i = 3 then
|
||||
Break; // Sólo meter las 3 primera agrupaciones
|
||||
RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TfrViewSumarios.AnadirSumario(const ACaption : String;
|
||||
const AKind : TcxSummaryKind) : TcxEditorRow;
|
||||
begin
|
||||
Result := vgSumarios.Add(TcxEditorRow) as TcxEditorRow;
|
||||
with Result do
|
||||
begin
|
||||
Properties.Caption := ACaption;
|
||||
Properties.Value := SumaryKindStrArray[AKind];
|
||||
Properties.ImageIndex := 2;
|
||||
Properties.EditPropertiesClass := TcxComboBoxProperties;
|
||||
with TcxComboBoxProperties(Properties.EditProperties) do
|
||||
begin
|
||||
ImmediateDropDown := True;
|
||||
DropDownListStyle := lsFixedList;
|
||||
ImmediatePost := True;
|
||||
ImmediateUpdateText := True;
|
||||
PostPopupValueOnTab := True;
|
||||
OnInitPopup := vgSumariosEditorRowInitPopup;
|
||||
OnEditValueChanged := vgSumariosEditorRowEditValueChanged;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.AplicarSumarioVista (
|
||||
const APosition: TcxSummaryPosition; const AColumnCaption: String;
|
||||
const AKind: TcxSummaryKind);
|
||||
const
|
||||
MASK_MONEDA = ',0.## €;-,0.## €';
|
||||
MASK_NUMERO = '#,##0';
|
||||
var
|
||||
AColumn : TcxGridDBColumn;
|
||||
begin
|
||||
AColumn := ViewControlGrid.GetColumnByCaption(AColumnCaption);
|
||||
if APosition = spFooter then
|
||||
begin
|
||||
AColumn.Summary.FooterKind := AKind;
|
||||
if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then
|
||||
AColumn.Summary.FooterFormat := MASK_MONEDA
|
||||
else
|
||||
AColumn.Summary.FooterFormat := MASK_NUMERO;
|
||||
end
|
||||
else begin
|
||||
AColumn.Summary.GroupFooterKind := AKind;
|
||||
if (AKind in [skSum, skAverage]) and (AColumn.PropertiesClassName = 'TcxCurrencyEditProperties') then
|
||||
AColumn.Summary.GroupFooterFormat := MASK_MONEDA
|
||||
else
|
||||
AColumn.Summary.GroupFooterFormat := MASK_NUMERO;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.RellenarTotalesPie;
|
||||
var
|
||||
i, j: Integer;
|
||||
ASummary: TcxDataFooterSummaryItems;
|
||||
AClase : TcxSummaryKind;
|
||||
ACaption : String;
|
||||
ACategory : TcxCategoryRow;
|
||||
ARow : TcxEditorRow;
|
||||
begin
|
||||
vgSumarios.BeginUpdate;
|
||||
try
|
||||
ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow);
|
||||
with ACategory.Properties do
|
||||
begin
|
||||
ASummary := ViewControlGrid.FocusedView.DataController.Summary.FooterSummaryItems;
|
||||
ImageIndex := 0;
|
||||
Caption := 'Resúmenes totales'
|
||||
end;
|
||||
|
||||
for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do
|
||||
begin
|
||||
ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption;
|
||||
AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.FooterKind;
|
||||
ARow := AnadirSumario(ACaption, AClase);
|
||||
ARow.Parent := ACategory;
|
||||
end;
|
||||
finally
|
||||
vgSumarios.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfrViewSumarios.RellenarCategoria(
|
||||
const APosition: TcxSummaryPosition; const AGroupName: String);
|
||||
begin
|
||||
if APosition = spFooter then
|
||||
RellenarTotalesPie
|
||||
else
|
||||
RellenarTotalesGrupo(AGroupName);
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.RellenarCategorias;
|
||||
var
|
||||
i : Integer;
|
||||
begin
|
||||
vgSumarios.ClearRows;
|
||||
RellenarCategoria(spFooter);
|
||||
|
||||
// Recuperar las agrupaciones del grid
|
||||
for i := 0 to ViewControlGrid.GroupedColumnCount - 1 do
|
||||
begin
|
||||
if i = 3 then
|
||||
Break; // Sólo meter las 3 primera agrupaciones
|
||||
RellenarCategoria(spGroup, ViewControlGrid.GroupedColumns[i].Caption);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.vgSumariosEditorRowInitPopup(Sender: TObject);
|
||||
var
|
||||
AColumn: TcxGridDBColumn;
|
||||
ARow : TcxEditorRow;
|
||||
const
|
||||
NumberFieldTypes =
|
||||
[ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftBCD, ftDate, ftTime,
|
||||
ftDateTime, ftAutoInc];
|
||||
TimeFieldTypes = [ftDate, ftTime, ftDateTime];
|
||||
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ARow := TcxEditorRow(vgSumarios.FocusedRow);
|
||||
AColumn := TcxGridDBColumn(ViewControlGrid.FocusedView.VisibleColumns[ARow.Index]);
|
||||
|
||||
if Assigned(AColumn.DataBinding.Field) then
|
||||
with TcxComboBoxProperties(TcxPopupEdit(Sender).Properties) do
|
||||
begin
|
||||
Items.Clear;
|
||||
BeginUpdate;
|
||||
try
|
||||
Items.Add(SumaryKindStrArray[skNone]);
|
||||
Items.Add(SumaryKindStrArray[skCount]);
|
||||
|
||||
if AColumn.DataBinding.Field.DataType in NumberFieldTypes then
|
||||
begin
|
||||
Items.Add(SumaryKindStrArray[skMax]);
|
||||
Items.Add(SumaryKindStrArray[skMin]);
|
||||
if not (AColumn.DataBinding.Field.DataType in TimeFieldTypes) then
|
||||
begin
|
||||
Items.Add(SumaryKindStrArray[skSum]);
|
||||
Items.Add(SumaryKindStrArray[skAverage]);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
EndUpdate;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.vgSumariosEditorRowEditValueChanged(
|
||||
Sender: TObject);
|
||||
var
|
||||
AColumn : String;
|
||||
ARow : TcxEditorRow;
|
||||
AKind : TcxSummaryKind;
|
||||
|
||||
function DarSummaryKind(AKind : String) : TcxSummaryKind;
|
||||
var
|
||||
i : TcxSummaryKind;
|
||||
begin
|
||||
if Length(AKind) = 0 then
|
||||
Result := skNone
|
||||
else
|
||||
for i := skSum to skAverage do
|
||||
if SumaryKindStrArray[i] = AKind then
|
||||
begin
|
||||
Result := i;
|
||||
Break;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
inherited;
|
||||
|
||||
ARow := TcxEditorRow(vgSumarios.FocusedRow);
|
||||
AColumn := ARow.Properties.Caption;
|
||||
AKind := DarSummaryKind(VarToStr(ARow.Properties.Value));
|
||||
|
||||
if Assigned(ARow.Parent) then
|
||||
begin
|
||||
if(ARow.Parent.Index = 0) then
|
||||
AplicarSumarioVista(spFooter, AColumn, AKind)
|
||||
else
|
||||
AplicarSumarioVista(spGroup, AColumn, AKind)
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.RellenarTotalesGrupo(const AGroupName: String);
|
||||
var
|
||||
i, j: Integer;
|
||||
ASummary: TcxDataSummaryGroup;
|
||||
AClase : TcxSummaryKind;
|
||||
ACaption : String;
|
||||
ACategory : TcxCategoryRow;
|
||||
ARow : TcxEditorRow;
|
||||
|
||||
begin
|
||||
ASummary := ViewControlGrid.FocusedView.DataController.Summary.SummaryGroups.FindByItemLink(ViewControlGrid.GetColumnByCaption(AGroupName));
|
||||
|
||||
vgSumarios.BeginUpdate;
|
||||
try
|
||||
ACategory := (vgSumarios.AddChild(nil, TcxCategoryRow) as TcxCategoryRow);
|
||||
with ACategory.Properties do
|
||||
begin
|
||||
ImageIndex := 1;
|
||||
Caption := 'Totales de ' + AGroupName;
|
||||
end;
|
||||
|
||||
for i := 0 to ViewControlGrid.FocusedView.VisibleColumnCount - 1 do
|
||||
begin
|
||||
ACaption := ViewControlGrid.FocusedView.VisibleColumns[i].Caption;
|
||||
AClase := ViewControlGrid.FocusedView.VisibleColumns[i].Summary.GroupFooterKind;
|
||||
ARow := AnadirSumario(ACaption, AClase);
|
||||
ARow.Parent := ACategory;
|
||||
end;
|
||||
finally
|
||||
vgSumarios.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.Execute;
|
||||
begin
|
||||
inherited;
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TfrViewSumarios.SetModificable(const Value: Boolean);
|
||||
begin
|
||||
inherited;
|
||||
vgSumarios.Enabled := Value;
|
||||
if Value then
|
||||
begin
|
||||
vgSumarios.Styles.Category := cxStyleCategoria;
|
||||
vgSumarios.Styles.Header := cxStyleNombreColumna;
|
||||
vgSumarios.Styles.Content := nil;
|
||||
end
|
||||
else begin
|
||||
vgSumarios.Styles.Category := cxStyleCategoriaInactivo;
|
||||
vgSumarios.Styles.Header := cxStyleNombreColumnaInactivo;
|
||||
vgSumarios.Styles.Content := cxStyleContentInactivo;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
||||
@ -1,613 +0,0 @@
|
||||
unit uRemesasProveedorController;
|
||||
|
||||
interface
|
||||
|
||||
|
||||
uses
|
||||
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
|
||||
uIDataModuleRemesasProveedor, uBizRemesasProveedor, uProveedoresController,
|
||||
uBizContactos, uRecibosProveedorController;
|
||||
|
||||
type
|
||||
IRemesasProveedorController = interface(IObservador)
|
||||
['{C14143FE-0806-4E64-93E2-A2C0170BBD41}']
|
||||
function Buscar(const ID: Integer): IBizRemesaProveedor;
|
||||
function BuscarTodos: IBizRemesaProveedor; overload;
|
||||
procedure Ver(ARemesaProveedor : IBizRemesaProveedor);
|
||||
procedure VerTodos(ARemesasProveedor: IBizRemesaProveedor);
|
||||
function Nuevo : IBizRemesaProveedor;
|
||||
procedure Anadir(ARemesaProveedor : IBizRemesaProveedor);
|
||||
function Eliminar(const ID : Integer): Boolean; overload;
|
||||
function Eliminar(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false): Boolean; overload;
|
||||
function Guardar(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
procedure DescartarCambios(ARemesaProveedor : IBizRemesaProveedor);
|
||||
function Existe(const ID: Integer) : Boolean;
|
||||
|
||||
procedure Preview(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false);
|
||||
procedure Print(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false);
|
||||
function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor);
|
||||
function GetRecibosProveedorController: IRecibosProveedorController;
|
||||
property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController;
|
||||
|
||||
procedure RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor);
|
||||
function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor; Const ViewGrid: IViewGridBase = Nil) : IBizRemesaProveedor;
|
||||
end;
|
||||
|
||||
TRemesasProveedorController = class(TObservador, IRemesasProveedorController)
|
||||
protected
|
||||
FDataModule : IDataModuleRemesasProveedor;
|
||||
FRecibosProveedorController: IRecibosProveedorController;
|
||||
function GetRecibosProveedorController: IRecibosProveedorController;
|
||||
|
||||
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
|
||||
procedure AsignarID(ARemesaProveedor: IBizRemesaProveedor; const IDNuevo: Integer); virtual;
|
||||
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
|
||||
function _Vacio : IBizRemesaProveedor;
|
||||
|
||||
procedure FiltrarEmpresa(ARemesaProveedor: IBizRemesaProveedor);
|
||||
function ValidarRemesaProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean; virtual;
|
||||
|
||||
procedure RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor);
|
||||
procedure RecuperarObjetos(ARemesaProveedor: IBizRemesaProveedor); virtual;
|
||||
procedure AsignarDataModule; virtual;
|
||||
|
||||
public
|
||||
property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController;
|
||||
|
||||
constructor Create; virtual;
|
||||
destructor Destroy; override;
|
||||
|
||||
function Eliminar(const ID : Integer): Boolean; overload;
|
||||
function Eliminar(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false): Boolean; overload;
|
||||
function Guardar(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
procedure DescartarCambios(ARemesaProveedor : IBizRemesaProveedor); virtual;
|
||||
function Existe(const ID: Integer) : Boolean; virtual;
|
||||
procedure Anadir(ARemesaProveedor : IBizRemesaProveedor); virtual;
|
||||
function Buscar(const ID: Integer): IBizRemesaProveedor; virtual;
|
||||
function BuscarTodos: IBizRemesaProveedor; overload;
|
||||
function Nuevo : IBizRemesaProveedor; virtual;
|
||||
procedure Ver(ARemesaProveedor : IBizRemesaProveedor); virtual;
|
||||
procedure VerTodos(ARemesasProveedor: IBizRemesaProveedor); virtual;
|
||||
|
||||
procedure Preview(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); virtual;
|
||||
procedure Print(ARemesaProveedor : IBizRemesaProveedor; AllItems: Boolean = false); virtual;
|
||||
function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
|
||||
function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor; Const ViewGrid: IViewGridBase = Nil) : IBizRemesaProveedor; virtual;
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor);
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
cxControls, DB, uEditorRegistryUtils, schRemesasProveedorClient_Intf,
|
||||
schRecibosProveedorClient_Intf, uIEditorRemesasProveedor, uIEditorRemesaProveedor,
|
||||
Dialogs, uDataModuleRemesasProveedor, uDataModuleUsuarios, uDAInterfaces,
|
||||
uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows,
|
||||
uBizRecibosProveedor, Variants, uRemesasProveedorReportController;
|
||||
|
||||
{ TRemesasProveedorController }
|
||||
|
||||
procedure TRemesasProveedorController.Anadir(ARemesaProveedor: IBizRemesaProveedor);
|
||||
begin
|
||||
ARemesaProveedor.Insert;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.EliminarReciboProveedor(ARemesaProveedor: IBizRemesaProveedor);
|
||||
var
|
||||
ARecibosRemesa : IBizRecibosProveedor;
|
||||
begin
|
||||
inherited;
|
||||
ARecibosRemesa := ARemesaProveedor.Recibos;
|
||||
RecibosProveedorController.QuitarRemesa(ARecibosRemesa);
|
||||
//Quitamos el recibo de la remesa sin que el servidor se entere para que no elimine el recibo
|
||||
DesconectarTabla(ARecibosRemesa.DataTable);
|
||||
ARecibosRemesa.DataTable.Delete;
|
||||
ConectarTabla(ARecibosRemesa.DataTable);
|
||||
ARecibosRemesa := Nil;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.EsEliminable(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.EsModificable(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.AsignarDataModule;
|
||||
begin
|
||||
FDataModule := TDataModuleRemesasProveedor.Create(Nil);
|
||||
FRecibosProveedorController := TRecibosProveedorController.Create;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.AsignarID(ARemesaProveedor: IBizRemesaProveedor; const IDNuevo: Integer);
|
||||
begin
|
||||
if not Assigned(ARemesaProveedor) then
|
||||
raise Exception.Create ('RemesaProveedor no asignado');
|
||||
|
||||
ARemesaProveedor.Edit;
|
||||
ARemesaProveedor.ID := IDNuevo;
|
||||
ARemesaProveedor.Post;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Buscar(const ID: Integer): IBizRemesaProveedor;
|
||||
begin
|
||||
Result := (FDataModule as IDataModuleRemesasProveedor).GetItem(ID);
|
||||
FiltrarEmpresa(Result);
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.BuscarTodos: IBizRemesaProveedor;
|
||||
begin
|
||||
Result := FDataModule.GetItems;
|
||||
FiltrarEmpresa(Result);
|
||||
end;
|
||||
|
||||
constructor TRemesasProveedorController.Create;
|
||||
begin
|
||||
AsignarDataModule;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.CreateEditor(const AName: String;
|
||||
const IID: TGUID; out Intf): Boolean;
|
||||
begin
|
||||
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.DescartarCambios(ARemesaProveedor: IBizRemesaProveedor);
|
||||
begin
|
||||
if not Assigned(ARemesaProveedor) then
|
||||
raise Exception.Create ('RemesaProveedor no asignado');
|
||||
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
if (ARemesaProveedor.State in dsEditModes) then
|
||||
ARemesaProveedor.Cancel;
|
||||
|
||||
ARemesaProveedor.DataTable.CancelUpdates;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
|
||||
destructor TRemesasProveedorController.Destroy;
|
||||
begin
|
||||
FDataModule := Nil;
|
||||
FRecibosProveedorController := Nil;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.ValidarRemesaProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
if not Assigned(ARemesaProveedor) then
|
||||
raise Exception.Create ('Remesa no asignada');
|
||||
|
||||
if (ARemesaProveedor.DataTable.State in dsEditModes) then
|
||||
ARemesaProveedor.DataTable.Post;
|
||||
|
||||
if ARemesaProveedor.DataTable.FieldByName(fld_RemesasProveedorFECHA_REMESA).IsNull then
|
||||
raise Exception.Create('Debe indicar la fecha de esta remesa.');
|
||||
|
||||
if ARemesaProveedor.ID_DATOS_BANCO < 1 then
|
||||
raise Exception.Create('Debe la cuenta bancaria sobre la que realizará la remesa.');
|
||||
|
||||
// Asegurarse de valores en campos "automáticos"
|
||||
ARemesaProveedor.Edit;
|
||||
try
|
||||
ARemesaProveedor.USUARIO := dmUsuarios.LoginInfo.Usuario;
|
||||
|
||||
Result := True;
|
||||
finally
|
||||
ARemesaProveedor.Post;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.Ver(ARemesaProveedor: IBizRemesaProveedor);
|
||||
var
|
||||
AEditor : IEditorRemesaProveedor;
|
||||
begin
|
||||
AEditor := NIL;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
RecuperarObjetos(ARemesaProveedor);
|
||||
|
||||
CreateEditor('EditorRemesaProveedor', IEditorRemesaProveedor, AEditor);
|
||||
if Assigned(AEditor) then
|
||||
with (AEditor as IEditorRemesaProveedor) do
|
||||
begin
|
||||
Controller := Self; //OJO ORDEN MUY IMPORTANTE
|
||||
RemesaProveedor := ARemesaProveedor;
|
||||
|
||||
//MODO CONSULTAR
|
||||
if not EsModificable(ARemesaProveedor) then
|
||||
begin
|
||||
SetDataTableReadOnly(ARemesaProveedor.DataTable, True);
|
||||
ReadOnly := True;
|
||||
end;
|
||||
|
||||
ShowModal;
|
||||
|
||||
//MODO CONSULTAR (Se deja la tabla como estaba)
|
||||
if ReadOnly then
|
||||
SetDataTableReadOnly(ARemesaProveedor.DataTable, False);
|
||||
|
||||
AEditor.Release;
|
||||
end;
|
||||
finally
|
||||
AEditor := NIL;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.VerTodos(ARemesasProveedor: IBizRemesaProveedor);
|
||||
var
|
||||
AEditor : IEditorRemesasProveedor;
|
||||
begin
|
||||
AEditor := NIL;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
CreateEditor('EditorRemesasProveedor', IEditorRemesasProveedor, AEditor);
|
||||
if Assigned(AEditor) then
|
||||
with (AEditor as IEditorRemesasProveedor) do
|
||||
begin
|
||||
Controller := Self; //OJO ORDEN MUY IMPORTANTE
|
||||
RemesasProveedor := ARemesasProveedor;
|
||||
MultiSelect := True;
|
||||
ShowEmbedded;
|
||||
end;
|
||||
finally
|
||||
AEditor := Nil;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController._Vacio: IBizRemesaProveedor;
|
||||
begin
|
||||
Result := Buscar(ID_NULO);
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Eliminar(const ID: Integer): Boolean;
|
||||
var
|
||||
ARemesaProveedor : IBizRemesaProveedor;
|
||||
begin
|
||||
ARemesaProveedor := Buscar(ID);
|
||||
|
||||
if not Assigned(ARemesaProveedor) then
|
||||
raise Exception.Create(Format('No se ha encontrado la remesa con ID = %d', [ID]));
|
||||
|
||||
Result := Eliminar(ARemesaProveedor);
|
||||
ARemesaProveedor := NIL;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
var
|
||||
ARecibosRemesa : IBizRecibosProveedor;
|
||||
ARecibosSeleccionados : IBizRecibosProveedor;
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar, 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor);
|
||||
if Assigned(ARecibosSeleccionados) then
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
ARecibosRemesa := ARemesaProveedor.Recibos;
|
||||
//Copia los recibos seleccionados a los recibos de la remesa sin que el servidor se entere de
|
||||
//las inserciones
|
||||
DuplicarRegistros(ARecibosSeleccionados.DataTable,ARecibosRemesa.DataTable, mdrTodos, False, False, True);
|
||||
FRecibosProveedorController.SetSituacionCobrados(ARecibosRemesa);
|
||||
Result := True;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
|
||||
ARecibosRemesa := Nil;
|
||||
ARecibosSeleccionados := Nil;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Eliminar(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false): Boolean;
|
||||
//En el caso de eliminar almenos un elemento del conjunto se devuelve true
|
||||
var
|
||||
bEliminado: Boolean;
|
||||
|
||||
begin
|
||||
bEliminado := False;
|
||||
|
||||
if not Assigned(ARemesaProveedor) then
|
||||
raise Exception.Create ('ARemesaProveedor no asignada');
|
||||
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
if not ARemesaProveedor.DataTable.Active then
|
||||
ARemesaProveedor.DataTable.Active := True;
|
||||
|
||||
if (ARemesaProveedor.State in dsEditModes) then
|
||||
ARemesaProveedor.Cancel;
|
||||
|
||||
//Siempre eliminaremos el seleccionado
|
||||
if EsEliminable(ARemesaProveedor) then
|
||||
begin
|
||||
//Si la llamada a eliminar es por el editor RemesasProveedor, debo recuperar los recibos
|
||||
//de la remesa a eliminar, en caso de venir por el editor RemesaProveedor ya los tengo
|
||||
if not Assigned(ARemesaProveedor.Recibos) then
|
||||
RecuperarRecibos(ARemesaProveedor);
|
||||
//Eliminaremos la remesa de los recibos asociados
|
||||
With ARemesaProveedor.Recibos.DataTable do
|
||||
begin
|
||||
First;
|
||||
While not Eof do
|
||||
begin
|
||||
RecibosProveedorController.QuitarRemesa(ARemesaProveedor.Recibos);
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
//Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros
|
||||
ARemesaProveedor.Recibos.DataTable.ApplyUpdates;
|
||||
|
||||
ARemesaProveedor.Delete;
|
||||
bEliminado := True;
|
||||
end;
|
||||
|
||||
//En el caso de querer eliminar todos los items del objeto AAlbaran
|
||||
if AllItems then
|
||||
begin
|
||||
with ARemesaProveedor.DataTable do
|
||||
begin
|
||||
First;
|
||||
while not EOF do
|
||||
begin
|
||||
if EsEliminable(ARemesaProveedor) then
|
||||
begin
|
||||
//Si la llamada a eliminar es por el editor RemesasProveedor, debo recuperar los recibos
|
||||
//de la remesa a eliminar, en caso de venir por el editor RemesaProveedor ya los tengo
|
||||
if not Assigned(ARemesaProveedor.Recibos) then
|
||||
RecuperarRecibos(ARemesaProveedor);
|
||||
//Eliminaremos la remesa de los recibos asociados
|
||||
With ARemesaProveedor.Recibos.DataTable do
|
||||
begin
|
||||
First;
|
||||
While not Eof do
|
||||
begin
|
||||
RecibosProveedorController.QuitarRemesa(ARemesaProveedor.Recibos);
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
|
||||
//Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros
|
||||
ARemesaProveedor.Recibos.DataTable.ApplyUpdates;
|
||||
|
||||
ARemesaProveedor.Delete;
|
||||
bEliminado := True
|
||||
end
|
||||
else Next;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if bEliminado then
|
||||
begin
|
||||
ARemesaProveedor.DataTable.ApplyUpdates;
|
||||
Result := True;
|
||||
end
|
||||
else
|
||||
Result := False;
|
||||
|
||||
HideHourglassCursor;
|
||||
except
|
||||
//Hay algun recibo de la remesa que tiene movimientos (Cobros/Devoluciones) posteriores al cobro inicial de la remesa
|
||||
on E: Exception do
|
||||
begin
|
||||
ARemesaProveedor.Recibos.DataTable.CancelUpdates;
|
||||
ARemesaProveedor.DataTable.CancelUpdates;
|
||||
HideHourglassCursor;
|
||||
MessageBox(0, 'Exiten movimientos (Cobros/Devoluciones) en los recibos posteriores al cobro inicial de la remesa', 'Atención', MB_ICONWARNING or MB_OK);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
|
||||
begin
|
||||
inherited;
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.RecuperarObjetos(ARemesaProveedor: IBizRemesaProveedor);
|
||||
begin
|
||||
RecuperarRecibos(ARemesaProveedor);
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.RecuperarRecibos(ARemesaProveedor: IBizRemesaProveedor);
|
||||
begin
|
||||
ARemesaProveedor.Recibos := RecibosProveedorController.BuscarRecibosRemesa(ARemesaProveedor.ID);
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Existe(const ID: Integer): Boolean;
|
||||
var
|
||||
ARemesaProveedor : IBizRemesaProveedor;
|
||||
begin
|
||||
try
|
||||
ARemesaProveedor := Buscar(ID);
|
||||
Result := Assigned(ARemesaProveedor) and (ARemesaProveedor.ID = ID);
|
||||
finally
|
||||
ARemesaProveedor := NIL;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor; Const ViewGrid: IViewGridBase = Nil): IBizRemesaProveedor;
|
||||
var
|
||||
ASeleccionados : IBizRemesaProveedor;
|
||||
begin
|
||||
if Assigned(ViewGrid) then
|
||||
begin
|
||||
//Guardamos la situación porque el CopyDataTable nos cambia la posicion
|
||||
ViewGrid.SaveGridStatus;
|
||||
ViewGrid.DesactivarGrid;
|
||||
end;
|
||||
|
||||
ASeleccionados := (Self.Buscar(ID_NULO) as IBizRemesaProveedor);
|
||||
CopyDataTable(ARemesasProveedor.DataTable, ASeleccionados.DataTable, True);
|
||||
Result := ASeleccionados;
|
||||
|
||||
if Assigned(ViewGrid) then
|
||||
begin
|
||||
ViewGrid.ActivarGrid;
|
||||
ViewGrid.RestoreGridStatus;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.FiltrarEmpresa(ARemesaProveedor: IBizRemesaProveedor);
|
||||
begin
|
||||
if ARemesaProveedor.DataTable.Active then
|
||||
ARemesaProveedor.DataTable.Active := False;
|
||||
|
||||
// Filtrar los contactos actuales por empresa
|
||||
with ARemesaProveedor.DataTable.Where do
|
||||
begin
|
||||
if NotEmpty then
|
||||
AddOperator(opAND);
|
||||
// Para evitar ambigüedades en la SQL del servidor
|
||||
AddText(fld_RemesasProveedorID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual));
|
||||
// AddCondition('##' + fld_RemesasProveedorID_EMPRESA, cEqual, dmUsuarios.IDEmpresaActual);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.GetRecibosProveedorController: IRecibosProveedorController;
|
||||
begin
|
||||
Result := FRecibosProveedorController;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Guardar(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
var
|
||||
NuevoID: Integer;
|
||||
bEsNuevo: Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
if ValidarRemesaProveedor(ARemesaProveedor) then
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
bEsNuevo := ARemesaProveedor.EsNuevo;
|
||||
if (bEsNuevo) then
|
||||
NuevoID := FDataModule.GetNextID(ARemesaProveedor.DataTable.LogicalName)
|
||||
else
|
||||
NuevoID := ARemesaProveedor.ID;
|
||||
|
||||
AsignarID(ARemesaProveedor, NuevoID);
|
||||
//Si es nuevo debemos hacer el applyupdates por la integridad referencial de BD
|
||||
if bEsNuevo then
|
||||
ARemesaProveedor.DataTable.ApplyUpdates;
|
||||
|
||||
//Si todo ha ido bien, asignamos la remesa a los recibos asociados
|
||||
//Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros
|
||||
RecibosProveedorController.AsignarRemesa(ARemesaProveedor.Recibos, NuevoID);
|
||||
ARemesaProveedor.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarán todos los cambios acumulados sobre los recibos asociados (EliminarReciboProveedor/ ElegirRecibosProveedor)
|
||||
|
||||
//Es necesario ya que no se refrescan bien los deltas y despues del applyupdates siguen
|
||||
//existiendo deltas, de esta forma los limpiamos
|
||||
if ARemesaProveedor.Recibos.DataTable.HasDelta then
|
||||
ARemesaProveedor.Recibos.DataTable.Refresh;
|
||||
|
||||
ARemesaProveedor.DataTable.ApplyUpdates;
|
||||
|
||||
Result := True;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.Nuevo: IBizRemesaProveedor;
|
||||
var
|
||||
ARemesaProveedor : IBizRemesaProveedor;
|
||||
begin
|
||||
ARemesaProveedor := FDataModule.NewItem;
|
||||
FiltrarEmpresa(ARemesaProveedor);
|
||||
ARemesaProveedor.DataTable.Active := True;
|
||||
ARemesaProveedor.Insert;
|
||||
Result := ARemesaProveedor;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.Preview(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false);
|
||||
var
|
||||
AReportController : IRemesasProveedorReportController;
|
||||
ID_Remesas: TStringList;
|
||||
|
||||
begin
|
||||
AReportController := TRemesasProveedorReportController.Create;
|
||||
try
|
||||
ID_Remesas := TStringList.Create;
|
||||
|
||||
//Si deseamos previsualizar todos los items del objeto albaran
|
||||
if AllItems then
|
||||
begin
|
||||
with ARemesaProveedor.DataTable do
|
||||
begin
|
||||
First;
|
||||
while not EOF do
|
||||
begin
|
||||
ID_Remesas.Add(IntToStr(ARemesaProveedor.ID));
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
//Solo previsualizamos el item seleccionado
|
||||
else
|
||||
ID_Remesas.Add(IntToStr(ARemesaProveedor.ID));
|
||||
|
||||
AReportController.Preview(ID_Remesas.CommaText);
|
||||
|
||||
finally
|
||||
AReportController := NIL;
|
||||
ID_Remesas.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRemesasProveedorController.Print(ARemesaProveedor: IBizRemesaProveedor; AllItems: Boolean = false);
|
||||
var
|
||||
AReportController : IRemesasProveedorReportController;
|
||||
ID_Remesas: TStringList;
|
||||
|
||||
begin
|
||||
AReportController := TRemesasProveedorReportController.Create;
|
||||
try
|
||||
ID_Remesas := TStringList.Create;
|
||||
|
||||
//Si deseamos previsualizar todos los items del objeto albaran
|
||||
if AllItems then
|
||||
begin
|
||||
with ARemesaProveedor.DataTable do
|
||||
begin
|
||||
First;
|
||||
while not EOF do
|
||||
begin
|
||||
ID_Remesas.Add(IntToStr(ARemesaProveedor.ID));
|
||||
Next;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
//Solo previsualizamos el item seleccionado
|
||||
else
|
||||
ID_Remesas.Add(IntToStr(ARemesaProveedor.ID));
|
||||
|
||||
AReportController.Print(ID_Remesas.CommaText);
|
||||
|
||||
finally
|
||||
AReportController := NIL;
|
||||
ID_Remesas.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user