d-bestverbuchen.w 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814
  1. &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
  2. &ANALYZE-RESUME
  3. &Scoped-define WINDOW-NAME CURRENT-WINDOW
  4. &Scoped-define FRAME-NAME D-Dialog
  5. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS D-Dialog
  6. /*------------------------------------------------------------------------
  7. File:
  8. Description: from cntnrdlg.w - ADM SmartDialog Template
  9. Input Parameters:
  10. <none>
  11. Output Parameters:
  12. <none>
  13. Author:
  14. Created:
  15. ------------------------------------------------------------------------*/
  16. /* This .W file was created with the Progress UIB. */
  17. /*----------------------------------------------------------------------*/
  18. /* Create an unnamed pool to store all the widgets created
  19. by this procedure. This is a good default which assures
  20. that this procedure's triggers and internal procedures
  21. will execute in this procedure's storage, and that proper
  22. cleanup will occur on deletion of the procedure. */
  23. CREATE WIDGET-POOL.
  24. /* *************************** Definitions ************************** */
  25. /* Parameters Definitions --- */
  26. /* Local Variable Definitions --- */
  27. DEFINE VARIABLE LHandle AS HANDLE NO-UNDO.
  28. DEFINE VARIABLE VBestand AS DECIMAL DECIMALS 4 NO-UNDO.
  29. DEFINE VARIABLE VDEP AS DECIMAL DECIMALS 4 NO-UNDO.
  30. DEFINE VARIABLE VEpCHF AS DECIMAL DECIMALS 4 NO-UNDO.
  31. DEFINE VARIABLE WBestand AS DECIMAL DECIMALS 4 NO-UNDO.
  32. DEFINE VARIABLE WEingang AS DECIMAL DECIMALS 4 NO-UNDO.
  33. DEFINE VARIABLE TBestand AS DECIMAL DECIMALS 4 NO-UNDO.
  34. DEFINE VARIABLE VJJ AS INTEGER NO-UNDO.
  35. DEFINE VARIABLE VMM AS INTEGER NO-UNDO.
  36. DEFINE VARIABLE VKorrektur AS DECIMAL DECIMALS 4 NO-UNDO.
  37. /* ---------- Globale Variablen ---------------------------------- */
  38. { v8/globvar.i" " " " "SHARED" }
  39. { v8/debivar.i " " " " "SHARED" }
  40. { v8/artivar.i " " " " "SHARED" }
  41. { v8/contvar.i " " " " "SHARED" }
  42. /* _UIB-CODE-BLOCK-END */
  43. &ANALYZE-RESUME
  44. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  45. /* ******************** Preprocessor Definitions ******************** */
  46. &Scoped-define PROCEDURE-TYPE SmartDialog
  47. &Scoped-define DB-AWARE no
  48. &Scoped-define ADM-CONTAINER DIALOG-BOX
  49. /* Name of designated FRAME-NAME and/or first browse and/or first query */
  50. &Scoped-define FRAME-NAME D-Dialog
  51. /* Standard List Definitions */
  52. &Scoped-Define ENABLED-OBJECTS RECT-35 E_Text F_Bestell_Nr F_FRW F_Kurs ~
  53. F_Faktor F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am ~
  54. F_Korrektur Btn_OK Btn_Cancel
  55. &Scoped-Define DISPLAYED-OBJECTS E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor ~
  56. F_Bestellung F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur
  57. /* Custom List Definitions */
  58. /* List-1,List-2,List-3,List-4,List-5,List-6 */
  59. &Scoped-define List-1 F_Bestell_Nr F_FRW F_Kurs F_Faktor
  60. &Scoped-define List-6 F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am ~
  61. F_Korrektur
  62. /* _UIB-PREPROCESSOR-BLOCK-END */
  63. &ANALYZE-RESUME
  64. /* *********************** Control Definitions ********************** */
  65. /* Define a dialog box */
  66. /* Definitions of the field level widgets */
  67. DEFINE BUTTON Btn_Cancel AUTO-END-KEY
  68. LABEL "&Abbrechen"
  69. SIZE 16 BY 1
  70. BGCOLOR 8 .
  71. DEFINE BUTTON Btn_OK AUTO-GO
  72. LABEL "OK"
  73. SIZE 16 BY 1
  74. BGCOLOR 8 .
  75. DEFINE VARIABLE E_Text AS CHARACTER
  76. VIEW-AS EDITOR MAX-CHARS 1000
  77. SIZE 108 BY 2.71
  78. BGCOLOR 15 FGCOLOR 12 NO-UNDO.
  79. DEFINE VARIABLE F_Artikel AS CHARACTER FORMAT "X(256)":U
  80. LABEL "Artikel"
  81. VIEW-AS FILL-IN NATIVE
  82. SIZE 68 BY 1
  83. BGCOLOR 15 NO-UNDO.
  84. DEFINE VARIABLE F_Bestand AS CHARACTER FORMAT "X(256)":U
  85. LABEL "Bestand heute"
  86. VIEW-AS FILL-IN NATIVE
  87. SIZE 16 BY 1
  88. BGCOLOR 15 NO-UNDO.
  89. DEFINE VARIABLE F_Bestand_Am AS CHARACTER FORMAT "X(256)":U
  90. LABEL "Bestand am"
  91. VIEW-AS FILL-IN NATIVE
  92. SIZE 16 BY 1
  93. BGCOLOR 15 NO-UNDO.
  94. DEFINE VARIABLE F_Bestellung AS CHARACTER FORMAT "X(256)":U
  95. LABEL "Bestellung"
  96. VIEW-AS FILL-IN NATIVE
  97. SIZE 68 BY 1
  98. BGCOLOR 15 NO-UNDO.
  99. DEFINE VARIABLE F_Bestell_Nr AS CHARACTER FORMAT "x(20)":U
  100. LABEL "Dokumentnummer Lieferant"
  101. VIEW-AS FILL-IN NATIVE
  102. SIZE 20 BY 1
  103. BGCOLOR 15 NO-UNDO.
  104. DEFINE VARIABLE F_DEP AS CHARACTER FORMAT "X(256)":U
  105. LABEL "Durschnittlicher EP heute"
  106. VIEW-AS FILL-IN NATIVE
  107. SIZE 16 BY 1
  108. BGCOLOR 15 NO-UNDO.
  109. DEFINE VARIABLE F_DEP_Am AS CHARACTER FORMAT "X(256)":U
  110. LABEL "Durchschnittlicher EP am"
  111. VIEW-AS FILL-IN NATIVE
  112. SIZE 16 BY 1
  113. BGCOLOR 15 NO-UNDO.
  114. DEFINE VARIABLE F_Faktor AS INTEGER FORMAT "zzzz9":U INITIAL 0
  115. LABEL "Faktor"
  116. VIEW-AS FILL-IN NATIVE
  117. SIZE 9 BY 1
  118. BGCOLOR 15 NO-UNDO.
  119. DEFINE VARIABLE F_FRW AS CHARACTER FORMAT "X(256)":U
  120. LABEL "Währung"
  121. VIEW-AS FILL-IN NATIVE
  122. SIZE 28 BY 1
  123. BGCOLOR 15 NO-UNDO.
  124. DEFINE VARIABLE F_Korrektur AS CHARACTER FORMAT "x(16)":U
  125. LABEL "Korrektur der Einstandskosten"
  126. VIEW-AS FILL-IN NATIVE
  127. SIZE 16 BY 1
  128. BGCOLOR 15 NO-UNDO.
  129. DEFINE VARIABLE F_Kurs AS DECIMAL FORMAT "zz,zz9.999999":U INITIAL 0
  130. LABEL "Kurs"
  131. VIEW-AS FILL-IN NATIVE
  132. SIZE 20 BY 1
  133. BGCOLOR 15 NO-UNDO.
  134. DEFINE RECTANGLE RECT-35
  135. EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
  136. SIZE 112 BY 14.29.
  137. /* ************************ Frame Definitions *********************** */
  138. DEFINE FRAME D-Dialog
  139. E_Text AT ROW 1.52 COL 3.8 NO-LABELS NO-TAB-STOP
  140. F_Bestell_Nr AT ROW 5 COL 41 COLON-ALIGNED
  141. F_FRW AT ROW 5 COL 81 COLON-ALIGNED NO-TAB-STOP
  142. F_Kurs AT ROW 6 COL 89 COLON-ALIGNED
  143. F_Faktor AT ROW 7 COL 100 COLON-ALIGNED NO-TAB-STOP
  144. F_Bestellung AT ROW 8 COL 41 COLON-ALIGNED NO-TAB-STOP
  145. F_Artikel AT ROW 9 COL 41 COLON-ALIGNED NO-TAB-STOP
  146. F_Bestand AT ROW 10 COL 41 COLON-ALIGNED NO-TAB-STOP
  147. F_Bestand_Am AT ROW 11 COL 41 COLON-ALIGNED NO-TAB-STOP
  148. F_DEP AT ROW 12 COL 41 COLON-ALIGNED NO-TAB-STOP
  149. F_DEP_Am AT ROW 13 COL 41 COLON-ALIGNED NO-TAB-STOP
  150. F_Korrektur AT ROW 14 COL 41 COLON-ALIGNED NO-TAB-STOP
  151. Btn_OK AT ROW 14 COL 68
  152. Btn_Cancel AT ROW 14 COL 86.4
  153. RECT-35 AT ROW 1.24 COL 2
  154. SPACE(0.99) SKIP(0.22)
  155. WITH VIEW-AS DIALOG-BOX KEEP-TAB-ORDER
  156. SIDE-LABELS NO-UNDERLINE THREE-D SCROLLABLE
  157. TITLE "Preise eines Lagereinganges verbuchen"
  158. DEFAULT-BUTTON Btn_Cancel CANCEL-BUTTON Btn_Cancel.
  159. /* *********************** Procedure Settings ************************ */
  160. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  161. /* Settings for THIS-PROCEDURE
  162. Type: SmartDialog
  163. Allow: Basic,Browse,DB-Fields,Query,Smart
  164. Other Settings: COMPILE
  165. */
  166. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  167. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB D-Dialog
  168. /* ************************* Included-Libraries *********************** */
  169. {src/adm/method/containr.i}
  170. /* _UIB-CODE-BLOCK-END */
  171. &ANALYZE-RESUME
  172. /* *********** Runtime Attributes and AppBuilder Settings *********** */
  173. &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
  174. /* SETTINGS FOR DIALOG-BOX D-Dialog
  175. FRAME-NAME */
  176. ASSIGN
  177. FRAME D-Dialog:SCROLLABLE = FALSE
  178. FRAME D-Dialog:HIDDEN = TRUE.
  179. ASSIGN
  180. E_Text:RETURN-INSERTED IN FRAME D-Dialog = TRUE
  181. E_Text:READ-ONLY IN FRAME D-Dialog = TRUE.
  182. /* SETTINGS FOR FILL-IN F_Artikel IN FRAME D-Dialog
  183. 6 */
  184. ASSIGN
  185. F_Artikel:READ-ONLY IN FRAME D-Dialog = TRUE.
  186. /* SETTINGS FOR FILL-IN F_Bestand IN FRAME D-Dialog
  187. 6 */
  188. ASSIGN
  189. F_Bestand:READ-ONLY IN FRAME D-Dialog = TRUE.
  190. /* SETTINGS FOR FILL-IN F_Bestand_Am IN FRAME D-Dialog
  191. 6 */
  192. ASSIGN
  193. F_Bestand_Am:READ-ONLY IN FRAME D-Dialog = TRUE.
  194. ASSIGN
  195. F_Bestellung:READ-ONLY IN FRAME D-Dialog = TRUE.
  196. /* SETTINGS FOR FILL-IN F_Bestell_Nr IN FRAME D-Dialog
  197. 1 */
  198. /* SETTINGS FOR FILL-IN F_DEP IN FRAME D-Dialog
  199. 6 */
  200. ASSIGN
  201. F_DEP:READ-ONLY IN FRAME D-Dialog = TRUE.
  202. /* SETTINGS FOR FILL-IN F_DEP_Am IN FRAME D-Dialog
  203. 6 */
  204. ASSIGN
  205. F_DEP_Am:READ-ONLY IN FRAME D-Dialog = TRUE.
  206. /* SETTINGS FOR FILL-IN F_Faktor IN FRAME D-Dialog
  207. 1 */
  208. ASSIGN
  209. F_Faktor:READ-ONLY IN FRAME D-Dialog = TRUE.
  210. /* SETTINGS FOR FILL-IN F_FRW IN FRAME D-Dialog
  211. 1 */
  212. ASSIGN
  213. F_FRW:READ-ONLY IN FRAME D-Dialog = TRUE.
  214. /* SETTINGS FOR FILL-IN F_Korrektur IN FRAME D-Dialog
  215. 6 */
  216. ASSIGN
  217. F_Korrektur:READ-ONLY IN FRAME D-Dialog = TRUE.
  218. /* SETTINGS FOR FILL-IN F_Kurs IN FRAME D-Dialog
  219. 1 */
  220. /* _RUN-TIME-ATTRIBUTES-END */
  221. &ANALYZE-RESUME
  222. /* Setting information for Queries and Browse Widgets fields */
  223. &ANALYZE-SUSPEND _QUERY-BLOCK DIALOG-BOX D-Dialog
  224. /* Query rebuild information for DIALOG-BOX D-Dialog
  225. _Options = "SHARE-LOCK"
  226. _Query is NOT OPENED
  227. */ /* DIALOG-BOX D-Dialog */
  228. &ANALYZE-RESUME
  229. /* ************************ Control Triggers ************************ */
  230. &Scoped-define SELF-NAME D-Dialog
  231. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  232. ON END-ERROR OF FRAME D-Dialog /* Preise eines Lagereinganges verbuchen */
  233. DO:
  234. Ja = FALSE.
  235. END.
  236. /* _UIB-CODE-BLOCK-END */
  237. &ANALYZE-RESUME
  238. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL D-Dialog D-Dialog
  239. ON WINDOW-CLOSE OF FRAME D-Dialog /* Preise eines Lagereinganges verbuchen */
  240. DO:
  241. /* Add Trigger to equate WINDOW-CLOSE to END-ERROR. */
  242. APPLY "END-ERROR":U TO SELF.
  243. END.
  244. /* _UIB-CODE-BLOCK-END */
  245. &ANALYZE-RESUME
  246. &Scoped-define SELF-NAME Btn_Cancel
  247. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_Cancel D-Dialog
  248. ON CHOOSE OF Btn_Cancel IN FRAME D-Dialog /* Abbrechen */
  249. DO:
  250. Ja = FALSE.
  251. END.
  252. /* _UIB-CODE-BLOCK-END */
  253. &ANALYZE-RESUME
  254. &Scoped-define SELF-NAME Btn_OK
  255. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Btn_OK D-Dialog
  256. ON CHOOSE OF Btn_OK IN FRAME D-Dialog /* OK */
  257. DO:
  258. DEFINE VARIABLE iFaknr AS INTEGER NO-UNDO.
  259. DEFINE VARIABLE cFaknr AS CHARACTER NO-UNDO.
  260. DO WITH FRAME {&FRAME-NAME}:
  261. DISABLE Btn_OK
  262. Btn_Cancel.
  263. ASSIGN {&List-1}.
  264. FIND Steuer WHERE Steuer.Firma = GVFirma NO-LOCK NO-ERROR.
  265. VKorrektur = 0.
  266. FOR EACH Besze OF Besko WITH FRAME {&FRAME-NAME}:
  267. IF Besze.Artnr = 0 THEN NEXT.
  268. IF Besze.MGeli < 1 THEN NEXT.
  269. IF Besze.Verbucht = TRUE THEN NEXT.
  270. FIND Artst OF Besze.
  271. VBestand = Artst.Bestand.
  272. VDEP = 0.
  273. IF VDEP = 0 THEN VDEP = Artst.DEP.
  274. IF VDEP = 0 THEN VDEP = Artst.LEP.
  275. IF VDEP = 0 THEN VDEP = Artst.Listen_EP.
  276. IF Besko.FRW <> Steuer.Fwc03 THEN
  277. DO:
  278. IF F_Kurs <> Besze.Kurs THEN
  279. DO:
  280. Besze.Kurs = F_Kurs.
  281. Rundbetr = Besze.S_Preis_FRW * Besze.Kurs / Besze.Faktor.
  282. Besze.S_Preis = Rundbetr.
  283. Rundbetr = (Rundbetr * (100 - Besze.Rabatt) / 100)
  284. + Besze.Spesen.
  285. Besze.Preis = Rundbetr.
  286. END.
  287. END.
  288. IF VDEP = 0 THEN VDEP = Besze.Preis.
  289. VEpCHF = Besze.Preis.
  290. FIND ArtLief USE-INDEX ArtLief-k2
  291. WHERE ArtLief.Firma = Besze.Firma
  292. AND ArtLief.Knr = Besko.Knr
  293. AND ArtLief.Artnr = Besze.Artnr
  294. AND ArtLief.Inhalt = Besze.Inhalt
  295. AND ArtLief.Jahr = Besze.Jahr NO-ERROR.
  296. FIND Liefst USE-INDEX Liefst-k1
  297. WHERE Liefst.Firma = Besze.Firma
  298. AND Liefst.Knr = Besko.Knr NO-ERROR.
  299. F_Artikel = STRING(Besze.Artnr ,"999999/")
  300. + STRING(Besze.Inhalt ,"9999/")
  301. + STRING(Besze.Jahr ,"9999 ")
  302. + Artst.Bez.
  303. F_Bestand = STRING(VBestand ,"->>>,>>>,>>>,>>9").
  304. F_DEP = STRING(VDEP ,"zzz,zzz,zz9.9999").
  305. F_Bestand_Am = ''.
  306. F_DEP_Am = ''.
  307. DISPLAY {&List-6}.
  308. FOR EACH Artbw USE-INDEX Artbw-k2
  309. WHERE Artbw.Firma = Besze.Firma
  310. AND Artbw.Artnr = Besze.Artnr
  311. AND Artbw.Inhalt = Besze.Inhalt
  312. AND Artbw.Jahr = Besze.Jahr
  313. AND Artbw.Datum > Besko.Buch_Datum
  314. AND Artbw.Trnr <> Besze.Trnr
  315. AND Artbw.Lager = Besze.Lager NO-LOCK:
  316. IF Artbw.Tr_Art > 0 AND Artbw.Tr_Art < 11
  317. THEN VBestand = VBestand + Artbw.Menge.
  318. IF Artbw.Tr_Art > 10 AND Artbw.Tr_Art < 21
  319. THEN VBestand = VBestand - Artbw.Menge.
  320. END.
  321. F_Bestand_Am = STRING(VBestand ,"->>>,>>>,>>>,>>9").
  322. WBestand = 0.
  323. WEingang = 0.
  324. TBestand = 0.
  325. TBestand = VBestand + Besze.MGeli.
  326. IF VBestand < 0 THEN VBestand = 0.
  327. WBestand = VBestand * VDEP.
  328. WEingang = Besze.MGeli * VEpCHF.
  329. DO WHILE TRUE:
  330. IF TBestand < 0 THEN
  331. DO:
  332. VDEP = VEpCHF.
  333. LEAVE.
  334. END.
  335. IF VBestand = 0 THEN
  336. DO:
  337. VDEP = VEpCHF.
  338. LEAVE.
  339. END.
  340. Rundbetr = (WBestand + WEingang) / TBestand.
  341. VDEP = Rundbetr.
  342. LEAVE.
  343. END.
  344. F_DEP_Am = STRING(VDEP,"zzz,zzz,zz9.9999").
  345. FOR EACH Artbw USE-INDEX Artbw-k2
  346. WHERE Artbw.Firma = Besze.Firma
  347. AND Artbw.Artnr = Besze.Artnr
  348. AND Artbw.Inhalt = Besze.Inhalt
  349. AND Artbw.Jahr = Besze.Jahr
  350. AND Artbw.Datum > Besko.Buch_Datum
  351. AND Artbw.Tr_Art > 0
  352. AND Artbw.Tr_Art < 11
  353. AND Artbw.Trnr <> Besze.Trnr
  354. AND Artbw.Menge <> 0
  355. AND Artbw.Lager = Besze.Lager:
  356. IF Artbw.EP = VDEP THEN NEXT.
  357. IF Artbw.Faknr = 0 THEN
  358. DO:
  359. Artbw.EP = VDEP.
  360. NEXT.
  361. END.
  362. VJJ = YEAR (Artbw.Fak_Dat).
  363. VMM = MONTH(Artbw.Fak_Dat).
  364. Rundbetr = (Artbw.Menge * VDEP) - (Artbw.Menge * Artbw.Ep).
  365. VKorrektur = VKorrektur + Rundbetr.
  366. FIND DeArUms USE-INDEX DeArUms-k1
  367. WHERE DeArUms.Firma = GVFirma
  368. AND DeArUms.Jahr = VJJ
  369. AND DeArUms.Knr = Besko.Knr
  370. AND DeArUms.Artnr = Besze.Artnr
  371. AND DeArUms.Inhalt = Besze.Inhalt
  372. AND DeArUms.Jahrg = Besze.Jahr NO-ERROR.
  373. IF AVAILABLE DeArUms THEN
  374. DO:
  375. DeArUms.Ep_Kum = DeArUms.Ep_Kum + Rundbetr.
  376. DeArUms.Ep_Mon[VMM] = DeArUms.Ep_Mon[VMM] + Rundbetr.
  377. END.
  378. FIND ArtUms USE-INDEX ArtUms-k1
  379. WHERE ArtUms.Firma = GVFirma
  380. AND ArtUms.Jahr = VJJ
  381. AND ArtUms.Artnr = Besze.Artnr
  382. AND ArtUms.Inhalt = Besze.Inhalt
  383. AND ArtUms.Jahrg = Besze.Jahr NO-ERROR.
  384. IF AVAILABLE ArtUms THEN
  385. DO:
  386. ArtUms.Ep_Kum = ArtUms.Ep_Kum + Rundbetr.
  387. ArtUms.Ep_Mon[VMM] = ArtUms.Ep_Mon[VMM] + Rundbetr.
  388. END.
  389. FIND DebUms USE-INDEX DebUms-k1
  390. WHERE DebUms.Firma = GVFirma
  391. AND DebUms.Jahr = VJJ
  392. AND DebUms.Knr = Besko.Knr
  393. AND DebUms.Ums_Grp = 999 NO-ERROR.
  394. IF AVAILABLE DebUms THEN
  395. DO:
  396. DebUms.Ep_Kum = DebUms.Ep_Kum + Rundbetr.
  397. DebUms.Ep_Mon[VMM] = DebUms.Ep_Mon[VMM] + Rundbetr.
  398. END.
  399. Artbw.Ep = VDEP.
  400. END.
  401. F_Korrektur = STRING(VKorrektur,"->>>,>>>,>>>,>>9").
  402. DISPLAY {&List-6}.
  403. FOR EACH Aufze USE-INDEX Aufze-k2
  404. WHERE Aufze.Firma = Besze.Firma
  405. AND Aufze.Artnr = Besze.Artnr
  406. AND Aufze.Inhalt = Besze.Inhalt
  407. AND Aufze.Jahr = Besze.Jahr ,
  408. FIRST Aufko USE-INDEX Aufko-k1
  409. WHERE Aufko.Firma = Aufze.Firma
  410. AND Aufko.Aufnr = Aufze.Aufnr
  411. AND Aufko.Lief_Datum > Besko.Buch_Datum NO-LOCK :
  412. IF Aufze.EP = VDEP THEN NEXT.
  413. Aufze.EP = VDEP.
  414. END.
  415. IF Besze.Trnr = 0 THEN
  416. DO:
  417. FIND FIRST Artbw USE-INDEX Artbw-k4
  418. WHERE Artbw.Firma = Besze.Firma
  419. AND Artbw.Aufnr = Besze.Besnr
  420. AND Artbw.Artnr = Besze.Artnr
  421. AND Artbw.Inhalt = Besze.Inhalt
  422. AND Artbw.Jahr = Besze.Jahr
  423. AND Artbw.Knr = Besko.Knr
  424. AND Artbw.Tr_Art = 11
  425. AND Artbw.Menge = Besze.MGeli
  426. AND Artbw.Lager = Besze.Lager NO-ERROR.
  427. IF AVAILABLE Artbw THEN Besze.Trnr = Artbw.Trnr.
  428. END.
  429. IF Besze.Trnr > 0 THEN
  430. DO:
  431. F_Bestell_Nr = TRIM(REPLACE(F_Bestell_Nr, ' ', '')).
  432. cFaknr = ''.
  433. DO i1 = 1 TO LENGTH(F_Bestell_Nr):
  434. IF SUBSTRING(F_Bestell_Nr, i1,01) < '0' THEN NEXT.
  435. IF SUBSTRING(F_Bestell_Nr, i1,01) > '9' THEN NEXT.
  436. cFaknr = cFaknr + SUBSTRING(F_Bestell_Nr,i1,01).
  437. END.
  438. IF LENGTH(cFaknr) > 6 THEN
  439. DO:
  440. i1 = LENGTH(cFaknr) - 6 + 1.
  441. cFaknr = SUBSTRING(cFaknr,i1).
  442. END.
  443. iFaknr = INTEGER(cFaknr) NO-ERROR.
  444. FIND Artbw USE-INDEX Artbw-k1
  445. WHERE Artbw.Firma = Besze.Firma
  446. AND Artbw.Trnr = Besze.Trnr.
  447. ASSIGN
  448. Artbw.Bez1 = Besze.Bez1
  449. Artbw.Bez2 = Besze.Bez2
  450. Artbw.Knr = Besko.Knr
  451. Artbw.Menge = Besze.MGel
  452. Artbw.Alk_Gehalt = Artst.Alk_Gehalt
  453. Artbw.Aktion = Besze.Aktion
  454. Artbw.Lager = Besze.Lager
  455. Artbw.Preis = Besze.Preis
  456. Artbw.Bru_Betr = Besze.Preis * Besze.MGeli
  457. Artbw.Net_Betr = Besze.Preis * Besze.MGeli
  458. Artbw.FRW = Besze.FRW
  459. Artbw.Faktor = F_Faktor
  460. Artbw.Kurs = F_Kurs
  461. Artbw.Ep = VDEP
  462. Artbw.Lag_Buch = TRUE
  463. Artbw.Faknr = iFaknr
  464. Artbw.Fak_Dat = (IF Besko.Buch_Datum <> ?
  465. THEN Besko.Buch_Datum
  466. ELSE Artbw.Datum).
  467. END.
  468. Besze.L_EP = Artst.LEP.
  469. Besze.Verbucht = TRUE.
  470. IF NOT Besze.Aktion THEN
  471. DO:
  472. IF AVAILABLE ArtLief THEN
  473. DO:
  474. ASSIGN
  475. ArtLief.S_Preis_FRW = Besze.S_Preis_FRW
  476. ArtLief.S_Preis = Besze.S_Preis
  477. ArtLief.L_EP = Besze.Preis
  478. ArtLief.L_EP_FRW = Besze.Preis
  479. * Besze.Faktor
  480. / Besze.Kurs
  481. ArtLief.L_Rabatt = Besze.Rabatt.
  482. IF Besze.S_Artnr <> '' THEN ArtLief.S_Artnr = Besze.S_Artnr.
  483. END.
  484. ASSIGN
  485. Artst.LEP = VEpCHF.
  486. END.
  487. ASSIGN
  488. Artst.DEP = VDEP.
  489. END.
  490. ENABLE Btn_OK
  491. Btn_Cancel.
  492. END.
  493. LVRecid = RECID(Besko).
  494. FIND Besko WHERE RECID(Besko) = LVRecid.
  495. Besko.Verbucht = TRUE.
  496. Besko.Bestell_Nr = F_Bestell_Nr.
  497. Besko.Kurs = F_Kurs.
  498. RELEASE Besko.
  499. Ja = TRUE.
  500. END.
  501. /* _UIB-CODE-BLOCK-END */
  502. &ANALYZE-RESUME
  503. &Scoped-define SELF-NAME E_Text
  504. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL E_Text D-Dialog
  505. ON ENTRY OF E_Text IN FRAME D-Dialog
  506. DO:
  507. APPLY 'TAB' TO SELF.
  508. RETURN NO-APPLY.
  509. END.
  510. /* _UIB-CODE-BLOCK-END */
  511. &ANALYZE-RESUME
  512. &UNDEFINE SELF-NAME
  513. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK D-Dialog
  514. /* *************************** Main Block *************************** */
  515. FIND Besko USE-INDEX Besko-k1
  516. WHERE Besko.Firma = GVFirma
  517. AND Besko.Besnr = LVBesnr NO-LOCK NO-ERROR.
  518. FIND Adresse USE-INDEX Adresse-k1
  519. WHERE Adresse.Firma = AdFirma
  520. AND Adresse.Knr = Besko.Knr NO-LOCK NO-ERROR.
  521. FIND Waehrung NO-LOCK USE-INDEX Waehrung-k1
  522. WHERE Waehrung.Firma = Besko.Firma
  523. AND Waehrung.FRW = Besko.FRW NO-ERROR.
  524. F_Bestellung = STRING(Besko.Besnr,"999999")
  525. + " "
  526. + Adresse.Anzeig_br.
  527. E_Text = 'Achtung!! Haben Sie alle Preise mutiert/kontrolliert ? '
  528. + CHR(10)
  529. + 'Anschliessend können keine Mutationen mehr gemacht werden!'.
  530. F_Bestell_Nr = Besko.Bestell_Nr.
  531. F_FRW = Waehrung.Bezeichnung.
  532. F_Kurs = Besko.Kurs.
  533. F_Faktor = Besko.Faktor.
  534. IF Besko.Buch_Datum = ? THEN
  535. DO:
  536. LVDat = TODAY.
  537. Linktext = STRING(LVDat,"99.99.9999")
  538. + ";"
  539. + "Eingabe Buchungsdatum;"
  540. + "Buchungsdatum;"
  541. + "99.99.9999;"
  542. + "3".
  543. RUN "v8/d-einlesen-wert.w".
  544. IF Linktext = '?' THEN Linktext = STRING(TODAY,"99.99.9999").
  545. LVDat = DATE(INTEGER(SUBSTRING(Linktext,04,02)),
  546. INTEGER(SUBSTRING(Linktext,01,02)),
  547. INTEGER(SUBSTRING(Linktext,07,04))).
  548. LVRecid = RECID(Besko).
  549. DO TRANSACTION:
  550. FIND Besko WHERE RECID(Besko) = LVRecid.
  551. Besko.Buch_Datum = LVDat.
  552. RELEASE Besko.
  553. END.
  554. FIND Besko WHERE RECID(Besko) = LVRecid NO-LOCK NO-ERROR.
  555. END.
  556. Linktext = F_Bestand_Am:LABEL.
  557. Linktext = Linktext + " " + STRING(Besko.Buch_Datum,"99.99.9999").
  558. F_Bestand_Am:LABEL = Linktext.
  559. Linktext = F_DEP_Am:LABEL.
  560. Linktext = Linktext + " " + STRING(Besko.Buch_Datum,"99.99.9999").
  561. F_DEP_Am:LABEL = Linktext.
  562. Ja = FALSE.
  563. {src/adm/template/dialogmn.i}
  564. /* _UIB-CODE-BLOCK-END */
  565. &ANALYZE-RESUME
  566. /* ********************** Internal Procedures *********************** */
  567. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects D-Dialog _ADM-CREATE-OBJECTS
  568. PROCEDURE adm-create-objects :
  569. /*------------------------------------------------------------------------------
  570. Purpose: Create handles for all SmartObjects used in this procedure.
  571. After SmartObjects are initialized, then SmartLinks are added.
  572. Parameters: <none>
  573. ------------------------------------------------------------------------------*/
  574. END PROCEDURE.
  575. /* _UIB-CODE-BLOCK-END */
  576. &ANALYZE-RESUME
  577. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available D-Dialog _ADM-ROW-AVAILABLE
  578. PROCEDURE adm-row-available :
  579. /*------------------------------------------------------------------------------
  580. Purpose: Dispatched to this procedure when the Record-
  581. Source has a new row available. This procedure
  582. tries to get the new row (or foriegn keys) from
  583. the Record-Source and process it.
  584. Parameters: <none>
  585. ------------------------------------------------------------------------------*/
  586. /* Define variables needed by this internal procedure. */
  587. {src/adm/template/row-head.i}
  588. /* Process the newly available records (i.e. display fields,
  589. open queries, and/or pass records on to any RECORD-TARGETS). */
  590. {src/adm/template/row-end.i}
  591. END PROCEDURE.
  592. /* _UIB-CODE-BLOCK-END */
  593. &ANALYZE-RESUME
  594. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI D-Dialog _DEFAULT-DISABLE
  595. PROCEDURE disable_UI :
  596. /*------------------------------------------------------------------------------
  597. Purpose: DISABLE the User Interface
  598. Parameters: <none>
  599. Notes: Here we clean-up the user-interface by deleting
  600. dynamic widgets we have created and/or hide
  601. frames. This procedure is usually called when
  602. we are ready to "clean-up" after running.
  603. ------------------------------------------------------------------------------*/
  604. /* Hide all frames. */
  605. HIDE FRAME D-Dialog.
  606. END PROCEDURE.
  607. /* _UIB-CODE-BLOCK-END */
  608. &ANALYZE-RESUME
  609. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI D-Dialog _DEFAULT-ENABLE
  610. PROCEDURE enable_UI :
  611. /*------------------------------------------------------------------------------
  612. Purpose: ENABLE the User Interface
  613. Parameters: <none>
  614. Notes: Here we display/view/enable the widgets in the
  615. user-interface. In addition, OPEN all queries
  616. associated with each FRAME and BROWSE.
  617. These statements here are based on the "Other
  618. Settings" section of the widget Property Sheets.
  619. ------------------------------------------------------------------------------*/
  620. DISPLAY E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor F_Bestellung F_Artikel
  621. F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur
  622. WITH FRAME D-Dialog.
  623. ENABLE RECT-35 E_Text F_Bestell_Nr F_FRW F_Kurs F_Faktor F_Bestellung
  624. F_Artikel F_Bestand F_Bestand_Am F_DEP F_DEP_Am F_Korrektur Btn_OK
  625. Btn_Cancel
  626. WITH FRAME D-Dialog.
  627. VIEW FRAME D-Dialog.
  628. {&OPEN-BROWSERS-IN-QUERY-D-Dialog}
  629. END PROCEDURE.
  630. /* _UIB-CODE-BLOCK-END */
  631. &ANALYZE-RESUME
  632. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records D-Dialog _ADM-SEND-RECORDS
  633. PROCEDURE send-records :
  634. /*------------------------------------------------------------------------------
  635. Purpose: Send record ROWID's for all tables used by
  636. this file.
  637. Parameters: see template/snd-head.i
  638. ------------------------------------------------------------------------------*/
  639. /* SEND-RECORDS does nothing because there are no External
  640. Tables specified for this SmartDialog, and there are no
  641. tables specified in any contained Browse, Query, or Frame. */
  642. END PROCEDURE.
  643. /* _UIB-CODE-BLOCK-END */
  644. &ANALYZE-RESUME
  645. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed D-Dialog
  646. PROCEDURE state-changed :
  647. /* -----------------------------------------------------------
  648. Purpose:
  649. Parameters: <none>
  650. Notes:
  651. -------------------------------------------------------------*/
  652. DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
  653. DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
  654. END PROCEDURE.
  655. /* _UIB-CODE-BLOCK-END */
  656. &ANALYZE-RESUME