Really, this should be it, for the passing income.
[capital-apms-progress.git] / vwr / mnt / v-rntinv.w
bloba71a0de4276b934fdfcca695cd03e739b3c38590
1 &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
2 &ANALYZE-RESUME
3 /* Connected Databases
4 ttpl PROGRESS
5 */
6 &Scoped-define WINDOW-NAME CURRENT-WINDOW
7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
8 /*------------------------------------------------------------------------
9 ------------------------------------------------------------------------*/
11 CREATE WIDGET-POOL.
13 /* *************************** Definitions ************************** */
15 {inc/topic/tpivoice.i}
17 DEF VAR invoice-list AS CHAR NO-UNDO.
18 DEF VAR debug-mode AS LOGI NO-UNDO INITIAL Yes.
20 DEF VAR invoice-total AS DEC NO-UNDO INITIAL 0.
21 DEF VAR invoice-tax AS DEC NO-UNDO INITIAL 0.
22 DEF VAR invoice-amount AS DEC NO-UNDO.
23 DEF VAR invoice-blurb AS CHAR NO-UNDO INITIAL "".
25 {inc/ofc-this.i}
26 {inc/ofc-set.i "Invoice-Terms" "default-terms" "WARNING"}
28 /* _UIB-CODE-BLOCK-END */
29 &ANALYZE-RESUME
32 &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
34 /* ******************** Preprocessor Definitions ******************** */
36 &Scoped-define PROCEDURE-TYPE SmartViewer
38 &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
40 /* Name of first Frame and/or Browse and/or first Query */
41 &Scoped-define FRAME-NAME F-Main
43 /* External Tables */
44 &Scoped-define EXTERNAL-TABLES Invoice
45 &Scoped-define FIRST-EXTERNAL-TABLE Invoice
48 /* Need to scope the external tables to this procedure */
49 DEFINE QUERY external_tables FOR Invoice.
50 /* Standard List Definitions */
51 &Scoped-Define ENABLED-FIELDS Invoice.InvoiceDate Invoice.EntityCode ~
52 Invoice.TaxAmount
53 &Scoped-define FIELD-PAIRS~
54 ~{&FP1}InvoiceDate ~{&FP2}InvoiceDate ~{&FP3}~
55 ~{&FP1}EntityCode ~{&FP2}EntityCode ~{&FP3}~
56 ~{&FP1}TaxAmount ~{&FP2}TaxAmount ~{&FP3}
57 &Scoped-define ENABLED-TABLES Invoice
58 &Scoped-define FIRST-ENABLED-TABLE Invoice
59 &Scoped-Define ENABLED-OBJECTS RECT-13 rs_charge-type fil_From fil_To ~
60 fil_Blurb cmb_Terms btn_add btn_ok btn_cancel
61 &Scoped-Define DISPLAYED-FIELDS Invoice.InvoiceNo Invoice.InvoiceDate ~
62 Invoice.EntityCode Invoice.TaxAmount
63 &Scoped-Define DISPLAYED-OBJECTS fil_Tenant rs_charge-type fil_From fil_To ~
64 fil_Blurb cmb_Terms fil_total fil_amtdue
66 /* Custom List Definitions */
67 /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
69 /* _UIB-PREPROCESSOR-BLOCK-END */
70 &ANALYZE-RESUME
73 /* ************************ Function Prototypes ********************** */
75 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD include-lease V-table-Win
76 FUNCTION include-lease RETURNS LOGICAL
77 ( INPUT lease-code AS INT ) FORWARD.
79 /* _UIB-CODE-BLOCK-END */
80 &ANALYZE-RESUME
83 /* *********************** Control Definitions ********************** */
86 /* Definitions of the field level widgets */
87 DEFINE BUTTON btn_add
88 LABEL "&Add"
89 SIZE 10 BY 1.05
90 FONT 9.
92 DEFINE BUTTON btn_cancel
93 LABEL "&Cancel"
94 SIZE 6.86 BY 1
95 FONT 9.
97 DEFINE BUTTON btn_ok
98 LABEL "&OK"
99 SIZE 5.72 BY 1.05
100 FONT 9.
102 DEFINE VARIABLE cmb_Terms AS CHARACTER FORMAT "X(30)":U
103 LABEL "Terms"
104 VIEW-AS COMBO-BOX INNER-LINES 15
105 LIST-ITEMS "",""
106 SIZE 36.57 BY 1 NO-UNDO.
108 DEFINE VARIABLE fil_Blurb AS CHARACTER
109 VIEW-AS EDITOR NO-WORD-WRAP SCROLLBAR-HORIZONTAL SCROLLBAR-VERTICAL
110 SIZE 83.43 BY 7.6
111 FONT 8 NO-UNDO.
113 DEFINE VARIABLE fil_amtdue AS DECIMAL FORMAT "-Z,ZZZ,ZZ9.99":U INITIAL 0
114 LABEL "Amt Due"
115 VIEW-AS FILL-IN
116 SIZE 14.57 BY 1
117 FGCOLOR 12 FONT 11 NO-UNDO.
119 DEFINE VARIABLE fil_From AS DATE FORMAT "99/99/9999":U
120 LABEL "From"
121 VIEW-AS FILL-IN
122 SIZE 10.14 BY 1.05 NO-UNDO.
124 DEFINE VARIABLE fil_Tenant AS CHARACTER FORMAT "X(50)":U
125 VIEW-AS FILL-IN
126 SIZE 66.29 BY 1 NO-UNDO.
128 DEFINE VARIABLE fil_To AS DATE FORMAT "99/99/9999":U
129 LABEL "To"
130 VIEW-AS FILL-IN
131 SIZE 10.14 BY 1.05 NO-UNDO.
133 DEFINE VARIABLE fil_total AS DECIMAL FORMAT "-Z,ZZZ,ZZ9.99" INITIAL 0
134 LABEL "Total"
135 VIEW-AS FILL-IN
136 SIZE 14.57 BY 1
137 FGCOLOR 12 FONT 11.
139 DEFINE VARIABLE rs_charge-type AS CHARACTER
140 VIEW-AS RADIO-SET HORIZONTAL
141 RADIO-BUTTONS
142 "Current charges", "charges",
143 "Charges in arrears", "arrears"
144 SIZE 33.72 BY 1 NO-UNDO.
146 DEFINE RECTANGLE RECT-13
147 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
148 SIZE 84.57 BY 16.
151 /* ************************ Frame Definitions *********************** */
153 DEFINE FRAME F-Main
154 Invoice.InvoiceNo AT ROW 1 COL 75 COLON-ALIGNED
155 LABEL "No" FORMAT "ZZZZZ9"
156 VIEW-AS FILL-IN
157 SIZE 7.43 BY 1
158 FONT 11
159 Invoice.InvoiceDate AT ROW 2.4 COL 7.57 COLON-ALIGNED
160 LABEL "Date"
161 VIEW-AS FILL-IN
162 SIZE 11 BY 1
163 Invoice.EntityCode AT ROW 4 COL 7.57 COLON-ALIGNED
164 LABEL "Tenant"
165 VIEW-AS FILL-IN
166 SIZE 6 BY 1
167 fil_Tenant AT ROW 4 COL 16.72 COLON-ALIGNED NO-LABEL
168 rs_charge-type AT ROW 5.2 COL 9.57 NO-LABEL
169 fil_From AT ROW 5.2 COL 54.43 COLON-ALIGNED
170 fil_To AT ROW 5.2 COL 72.72 COLON-ALIGNED
171 fil_Blurb AT ROW 6.4 COL 1.57 NO-LABEL
172 cmb_Terms AT ROW 14.2 COL 7.57 COLON-ALIGNED
173 fil_total AT ROW 14.2 COL 68.14 COLON-ALIGNED
174 Invoice.TaxAmount AT ROW 15.2 COL 68.14 COLON-ALIGNED FORMAT "-Z,ZZZ,ZZ9.99"
175 VIEW-AS FILL-IN
176 SIZE 14.57 BY 1
177 FGCOLOR 12 FONT 11
178 fil_amtdue AT ROW 16.2 COL 68.14 COLON-ALIGNED
179 btn_add AT ROW 17.8 COL 1
180 btn_ok AT ROW 17.8 COL 71.86
181 btn_cancel AT ROW 17.8 COL 78.72
182 RECT-13 AT ROW 1.4 COL 1
183 "Rent Invoice Registration" VIEW-AS TEXT
184 SIZE 30.29 BY 1 AT ROW 1 COL 1.57
185 FONT 13
186 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
187 SIDE-LABELS NO-UNDERLINE THREE-D
188 AT COL 1 ROW 1 SCROLLABLE
189 FONT 10.
192 /* *********************** Procedure Settings ************************ */
194 &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
195 /* Settings for THIS-PROCEDURE
196 Type: SmartViewer
197 External Tables: TTPL.Invoice
198 Allow: Basic,DB-Fields
199 Frames: 1
200 Add Fields to: EXTERNAL-TABLES
201 Other Settings: PERSISTENT-ONLY COMPILE
204 /* This procedure should always be RUN PERSISTENT. Report the error, */
205 /* then cleanup and return. */
206 IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
207 MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT."
208 VIEW-AS ALERT-BOX ERROR BUTTONS OK.
209 RETURN.
210 END.
212 &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
214 /* ************************* Create Window ************************** */
216 &ANALYZE-SUSPEND _CREATE-WINDOW
217 /* DESIGN Window definition (used by the UIB)
218 CREATE WINDOW V-table-Win ASSIGN
219 HEIGHT = 18.8
220 WIDTH = 91.57.
221 /* END WINDOW DEFINITION */
223 &ANALYZE-RESUME
226 /* *************** Runtime Attributes and UIB Settings ************** */
228 &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
229 /* SETTINGS FOR WINDOW V-table-Win
230 VISIBLE,,RUN-PERSISTENT */
231 /* SETTINGS FOR FRAME F-Main
232 NOT-VISIBLE Size-to-Fit */
233 ASSIGN
234 FRAME F-Main:SCROLLABLE = FALSE
235 FRAME F-Main:HIDDEN = TRUE.
237 /* SETTINGS FOR FILL-IN Invoice.EntityCode IN FRAME F-Main
238 EXP-LABEL */
239 /* SETTINGS FOR FILL-IN fil_amtdue IN FRAME F-Main
240 NO-ENABLE */
241 ASSIGN
242 fil_Blurb:READ-ONLY IN FRAME F-Main = TRUE.
244 /* SETTINGS FOR FILL-IN fil_Tenant IN FRAME F-Main
245 NO-ENABLE */
246 /* SETTINGS FOR FILL-IN fil_total IN FRAME F-Main
247 NO-ENABLE */
248 /* SETTINGS FOR FILL-IN Invoice.InvoiceDate IN FRAME F-Main
249 EXP-LABEL */
250 /* SETTINGS FOR FILL-IN Invoice.InvoiceNo IN FRAME F-Main
251 NO-ENABLE EXP-LABEL EXP-FORMAT */
252 /* SETTINGS FOR FILL-IN Invoice.TaxAmount IN FRAME F-Main
253 EXP-FORMAT */
254 /* _RUN-TIME-ATTRIBUTES-END */
255 &ANALYZE-RESUME
258 /* Setting information for Queries and Browse Widgets fields */
260 &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
261 /* Query rebuild information for FRAME F-Main
262 _Options = "NO-LOCK KEEP-EMPTY"
263 _TblOptList = "FIRST OUTER"
264 _Query is NOT OPENED
265 */ /* FRAME F-Main */
266 &ANALYZE-RESUME
271 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
272 /* ************************* Included-Libraries *********************** */
274 {src/adm/method/viewer.i}
275 {inc/method/m-mntvwr.i}
276 {inc/string.i}
277 {inc/rentchrg.i}
279 /* _UIB-CODE-BLOCK-END */
280 &ANALYZE-RESUME
285 /* ************************ Control Triggers ************************ */
287 &Scoped-define SELF-NAME F-Main
288 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL F-Main V-table-Win
289 ON RETURN OF FRAME F-Main
290 ANYWHERE DO:
291 IF LOOKUP( FOCUS:TYPE, 'FILL-IN,EDITOR,COMBO-BOX' ) <> 0 OR
292 FOCUS:TYPE = 'BUTTON':U AND FOCUS:DYNAMIC THEN
294 APPLY 'TAB':U TO FOCUS.
295 RETURN NO-APPLY.
296 END.
297 END.
299 /* _UIB-CODE-BLOCK-END */
300 &ANALYZE-RESUME
303 &Scoped-define SELF-NAME btn_add
304 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_add V-table-Win
305 ON CHOOSE OF btn_add IN FRAME F-Main /* Add */
307 RUN dispatch( 'add-record':U ).
308 END.
310 /* _UIB-CODE-BLOCK-END */
311 &ANALYZE-RESUME
314 &Scoped-define SELF-NAME btn_cancel
315 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_cancel V-table-Win
316 ON CHOOSE OF btn_cancel IN FRAME F-Main /* Cancel */
318 RUN cancel-changes.
319 END.
321 /* _UIB-CODE-BLOCK-END */
322 &ANALYZE-RESUME
325 &Scoped-define SELF-NAME btn_ok
326 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL btn_ok V-table-Win
327 ON CHOOSE OF btn_ok IN FRAME F-Main /* OK */
329 RUN confirm-changes.
330 END.
332 /* _UIB-CODE-BLOCK-END */
333 &ANALYZE-RESUME
336 &Scoped-define SELF-NAME cmb_Terms
337 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_Terms V-table-Win
338 ON U1 OF cmb_Terms IN FRAME F-Main /* Terms */
340 {inc/selcmb/scivt1.i "Invoice" "TermsCode"}
341 END.
343 /* _UIB-CODE-BLOCK-END */
344 &ANALYZE-RESUME
347 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_Terms V-table-Win
348 ON U2 OF cmb_Terms IN FRAME F-Main /* Terms */
350 {inc/selcmb/scivt2.i "Invoice" "TermsCode"}
351 END.
353 /* _UIB-CODE-BLOCK-END */
354 &ANALYZE-RESUME
357 &Scoped-define SELF-NAME Invoice.EntityCode
358 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL Invoice.EntityCode V-table-Win
359 ON LEAVE OF Invoice.EntityCode IN FRAME F-Main /* Tenant */
361 IF INPUT {&SELF-NAME} <> {&SELF-NAME} THEN RUN update-details.
362 {inc/selcde/cdtnt.i "fil_Tenant"}
363 END.
365 /* _UIB-CODE-BLOCK-END */
366 &ANALYZE-RESUME
369 &Scoped-define SELF-NAME fil_From
370 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_From V-table-Win
371 ON LEAVE OF fil_From IN FRAME F-Main /* From */
373 IF INPUT fil_From <> fil_From THEN RUN update-details.
374 END.
376 /* _UIB-CODE-BLOCK-END */
377 &ANALYZE-RESUME
380 &Scoped-define SELF-NAME fil_Tenant
381 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_Tenant V-table-Win
382 ON U1 OF fil_Tenant IN FRAME F-Main
384 {inc/selfil/sftnt1.i "Invoice" "EntityCode"}
385 END.
387 /* _UIB-CODE-BLOCK-END */
388 &ANALYZE-RESUME
391 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_Tenant V-table-Win
392 ON U2 OF fil_Tenant IN FRAME F-Main
394 {inc/selfil/sftnt2.i "Invoice" "EntityCode"}
395 END.
397 /* _UIB-CODE-BLOCK-END */
398 &ANALYZE-RESUME
401 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_Tenant V-table-Win
402 ON U3 OF fil_Tenant IN FRAME F-Main
404 {inc/selfil/sftnt3.i "Invoice" "EntityCode"}
405 END.
407 /* _UIB-CODE-BLOCK-END */
408 &ANALYZE-RESUME
411 &Scoped-define SELF-NAME fil_To
412 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_To V-table-Win
413 ON LEAVE OF fil_To IN FRAME F-Main /* To */
415 IF INPUT fil_to <> fil_to THEN RUN update-details.
416 END.
418 /* _UIB-CODE-BLOCK-END */
419 &ANALYZE-RESUME
422 &Scoped-define SELF-NAME rs_charge-type
423 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL rs_charge-type V-table-Win
424 ON VALUE-CHANGED OF rs_charge-type IN FRAME F-Main
426 RUN update-details.
427 END.
429 /* _UIB-CODE-BLOCK-END */
430 &ANALYZE-RESUME
433 &UNDEFINE SELF-NAME
435 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
438 /* *************************** Main Block *************************** */
440 /* _UIB-CODE-BLOCK-END */
441 &ANALYZE-RESUME
444 /* ********************** Internal Procedures *********************** */
446 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
447 PROCEDURE adm-row-available :
448 /*------------------------------------------------------------------------------
449 Purpose: Dispatched to this procedure when the Record-
450 Source has a new row available. This procedure
451 tries to get the new row (or foriegn keys) from
452 the Record-Source and process it.
453 Parameters: <none>
454 ------------------------------------------------------------------------------*/
456 /* Define variables needed by this internal procedure. */
457 {src/adm/template/row-head.i}
459 /* Create a list of all the tables that we need to get. */
460 {src/adm/template/row-list.i "Invoice"}
462 /* Get the record ROWID's from the RECORD-SOURCE. */
463 {src/adm/template/row-get.i}
465 /* FIND each record specified by the RECORD-SOURCE. */
466 {src/adm/template/row-find.i "Invoice"}
468 /* Process the newly available records (i.e. display fields,
469 open queries, and/or pass records on to any RECORD-TARGETS). */
470 {src/adm/template/row-end.i}
472 END PROCEDURE.
474 /* _UIB-CODE-BLOCK-END */
475 &ANALYZE-RESUME
478 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE assign-invoice-line V-table-Win
479 PROCEDURE assign-invoice-line :
480 /*------------------------------------------------------------------------------
481 Purpose:
482 ------------------------------------------------------------------------------*/
483 DEF VAR tenant-code AS INT NO-UNDO.
484 DEF VAR period-d1 AS DATE NO-UNDO.
485 DEF VAR period-dn AS DATE NO-UNDO.
487 DEF VAR last-type AS CHAR NO-UNDO INITIAL "not a possible type".
488 DEF VAR last-account AS DEC NO-UNDO INITIAL -999999.999 .
489 DEF VAR charge-from AS DATE NO-UNDO .
491 DO WITH FRAME {&FRAME-NAME}:
493 IF NOT AVAILABLE Invoice THEN RETURN.
494 RUN update-details.
495 IF ERROR-STATUS:ERROR THEN RETURN ERROR.
497 FIND Tenant WHERE Tenant.TenantCode = Invoice.EntityCode NO-LOCK.
498 FOR EACH InvoiceLine OF Invoice: DELETE InvoiceLine. END.
500 ON ASSIGN OF InvoiceLine.YourShare OVERRIDE DO: END.
501 FOR EACH ChargeDetail:
502 IF last-type <> ChargeDetail.ChargeType OR last-account <> ChargeDetail.AccountCode THEN DO:
503 CREATE InvoiceLine.
504 ASSIGN InvoiceLine.InvoiceNo = Invoice.InvoiceNo
505 InvoiceLine.EntityType = Tenant.EntityType
506 InvoiceLine.EntityCode = Tenant.EntityCode
507 InvoiceLine.AccountCode = ChargeDetail.AccountCode
508 InvoiceLine.Percent = 100.00
509 charge-from = ChargeDetail.ChargedFrom
510 last-type = ChargeDetail.ChargeType
511 last-account = ChargeDetail.AccountCode .
512 END.
514 ASSIGN InvoiceLine.AccountText = ChargeDetail.Description
515 + " from " + STRING( charge-from, "99/99/9999") + " to " + STRING( ChargeDetail.ChargedUpTo, "99/99/9999")
516 InvoiceLine.Amount = InvoiceLine.Amount + ChargeDetail.ChargeAmount
517 InvoiceLine.YourShare = InvoiceLine.Amount.
518 END.
519 ON ASSIGN OF InvoiceLine.YourShare REVERT.
520 END.
522 END PROCEDURE.
524 /* _UIB-CODE-BLOCK-END */
525 &ANALYZE-RESUME
528 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancel-changes V-table-Win
529 PROCEDURE cancel-changes :
530 /*------------------------------------------------------------------------------
531 Purpose:
532 Parameters: <none>
533 Notes:
534 ------------------------------------------------------------------------------*/
536 RUN notify( 'hide, CONTAINER-SOURCE':U ).
538 RUN delete-invoice.
539 RUN print-invoices.
540 IF NUM-ENTRIES( invoice-list ) <> 0 THEN
541 RUN notify( 'open-query, RECORD-SOURCE':U ).
542 RUN check-modified( "CLEAR":U ).
544 RUN dispatch( 'exit':U ).
546 END PROCEDURE.
548 /* _UIB-CODE-BLOCK-END */
549 &ANALYZE-RESUME
552 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE confirm-changes V-table-Win
553 PROCEDURE confirm-changes :
554 /*------------------------------------------------------------------------------
555 Purpose:
556 Parameters: <none>
557 Notes:
558 ------------------------------------------------------------------------------*/
560 RUN verify-invoice.
561 IF RETURN-VALUE = "FAIL" THEN RETURN.
563 RUN notify( 'hide, CONTAINER-SOURCE':u ).
564 RUN dispatch( 'update-record':U ).
565 RUN print-invoices.
566 RUN notify( 'open-query, RECORD-SOURCE':U ).
567 RUN dispatch( 'exit':U ).
569 END PROCEDURE.
571 /* _UIB-CODE-BLOCK-END */
572 &ANALYZE-RESUME
575 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE delete-invoice V-table-Win
576 PROCEDURE delete-invoice :
577 /*------------------------------------------------------------------------------
578 Purpose:
579 Parameters: <none>
580 Notes:
581 ------------------------------------------------------------------------------*/
583 IF NOT AVAILABLE Invoice THEN RETURN.
585 FIND Current Invoice EXCLUSIVE-LOCK.
586 DELETE Invoice.
588 END PROCEDURE.
590 /* _UIB-CODE-BLOCK-END */
591 &ANALYZE-RESUME
594 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _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 F-Main.
606 IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
607 END PROCEDURE.
609 /* _UIB-CODE-BLOCK-END */
610 &ANALYZE-RESUME
613 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-assign-statement V-table-Win
614 PROCEDURE inst-assign-statement :
615 /*------------------------------------------------------------------------------
616 Purpose:
617 Parameters: <none>
618 Notes:
619 ------------------------------------------------------------------------------*/
620 DEF VAR paid-to-list AS CHAR NO-UNDO.
622 DO WITH FRAME {&FRAME-NAME}:
624 ASSIGN
625 Invoice.InvoiceStatus = "U"
626 Invoice.InvoiceType = "RENT"
627 Invoice.EntityType = "T"
628 Invoice.ToDetail =
629 "Rent charges from " + STRING( INPUT fil_from, "99/99/9999" ) +
630 " to " + STRING( INPUT fil_to, "99/99/9999" )
631 Invoice.Blurb = fil_blurb:SCREEN-VALUE
632 Invoice.TaxAmount = invoice-tax
633 Invoice.Total = invoice-total.
635 paid-to-list = "".
636 FOR EACH ChargeDetail:
637 paid-to-list = paid-to-list
638 + STRING( ChargeDetail.TenancyLeaseCode ) + "|"
639 + STRING( ChargeDetail.ChargeSeq) + "|"
640 + STRING( ChargeDetail.ChargeStart, "99/99/9999") + "|"
641 + STRING( ChargeDetail.ChargedUpTo, "99/99/9999")
642 + ",".
643 END.
644 Invoice.ToPay = RIGHT-TRIM( paid-to-list, ",").
645 END.
647 END PROCEDURE.
649 /* _UIB-CODE-BLOCK-END */
650 &ANALYZE-RESUME
653 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-display-fields V-table-Win
654 PROCEDURE inst-display-fields :
655 /*------------------------------------------------------------------------------
656 Purpose: View or hide tax fields depending on the office
657 Parameters: <none>
658 Notes:
659 ------------------------------------------------------------------------------*/
661 DO WITH FRAME {&FRAME-NAME}:
663 IF AVAILABLE Invoice THEN
665 fil_total = Invoice.Total + Invoice.TaxAmount.
666 DISPLAY fil_total WITH FRAME {&FRAME-NAME}.
667 END.
669 END.
671 END PROCEDURE.
673 /* _UIB-CODE-BLOCK-END */
674 &ANALYZE-RESUME
677 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-enable-fields V-table-Win
678 PROCEDURE inst-enable-fields :
679 /*------------------------------------------------------------------------------
680 Purpose:
681 Parameters: <none>
682 Notes:
683 ------------------------------------------------------------------------------*/
685 DO WITH FRAME {&FRAME-NAME}:
687 Invoice.TaxAmount:HIDDEN = AVAILABLE Office AND Office.GST = 0.
688 Invoice.TaxAmount:SENSITIVE = No.
690 END.
692 END PROCEDURE.
694 /* _UIB-CODE-BLOCK-END */
695 &ANALYZE-RESUME
698 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-initialize V-table-Win
699 PROCEDURE inst-initialize :
700 /*------------------------------------------------------------------------------
701 Purpose:
702 Parameters: <none>
703 Notes:
704 ------------------------------------------------------------------------------*/
706 RUN dispatch( 'add-record':U ).
708 END PROCEDURE.
710 /* _UIB-CODE-BLOCK-END */
711 &ANALYZE-RESUME
714 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-update-record V-table-Win
715 PROCEDURE local-update-record :
716 /*------------------------------------------------------------------------------
717 Purpose: Override standard ADM method
718 Notes:
719 ------------------------------------------------------------------------------*/
721 /* Code placed here will execute PRIOR to standard behavior. */
723 /* Dispatch standard ADM method. */
724 RUN dispatch IN THIS-PROCEDURE ( INPUT 'update-record':U ) .
725 RUN assign-invoice-line.
727 /* Code placed here will execute AFTER standard behavior. */
728 IF LOOKUP( STRING( Invoice.InvoiceNo ), invoice-list ) = 0 THEN
730 invoice-list = invoice-list + IF invoice-list = "" THEN "" ELSE ",".
731 invoice-list = invoice-list + STRING( Invoice.InvoiceNo ) .
732 END.
734 END PROCEDURE.
736 /* _UIB-CODE-BLOCK-END */
737 &ANALYZE-RESUME
740 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE override-add-record V-table-Win
741 PROCEDURE override-add-record :
742 /*------------------------------------------------------------------------------
743 Purpose:
744 Parameters: <none>
745 Notes:
746 ------------------------------------------------------------------------------*/
748 RUN notify( 'set-busy, CONTAINER-SOURCE':U ).
750 IF AVAILABLE Invoice THEN
752 RUN verify-invoice.
753 IF RETURN-VALUE = "FAIL" THEN DO:
754 RUN notify( 'set-idle, CONTAINER-SOURCE':U ).
755 RETURN.
756 END.
757 RUN dispatch( 'update-record':U ).
758 END.
760 CREATE Invoice.
761 ASSIGN
762 Invoice.InvoiceDate = TODAY
763 Invoice.TaxApplies = Office.GST <> ?.
765 RUN dispatch( 'enable-fields':U ).
766 RUN dispatch( 'display-fields':U ).
768 RUN reset-local-fields.
770 RUN notify( 'set-idle, CONTAINER-SOURCE':U ).
771 APPLY 'ENTRY':U TO Invoice.InvoiceDate IN FRAME {&FRAME-NAME}.
773 END PROCEDURE.
775 /* _UIB-CODE-BLOCK-END */
776 &ANALYZE-RESUME
779 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-destroy V-table-Win
780 PROCEDURE pre-destroy :
781 /*------------------------------------------------------------------------------
782 Purpose:
783 Parameters: <none>
784 Notes:
785 ------------------------------------------------------------------------------*/
787 IF LAST-EVENT:FUNCTION = "WINDOW-CLOSE" THEN RUN cancel-changes.
789 END PROCEDURE.
791 /* _UIB-CODE-BLOCK-END */
792 &ANALYZE-RESUME
795 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-row-available V-table-Win
796 PROCEDURE pre-row-available :
797 /*------------------------------------------------------------------------------
798 Purpose:
799 Parameters: <none>
800 Notes:
801 ------------------------------------------------------------------------------*/
803 have-records = Yes.
805 END PROCEDURE.
807 /* _UIB-CODE-BLOCK-END */
808 &ANALYZE-RESUME
811 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE print-invoices V-table-Win
812 PROCEDURE print-invoices :
813 /*------------------------------------------------------------------------------
814 Purpose: Print the invoice approval forms for all new/modified invoices
815 Parameters: <none>
816 Notes:
817 ------------------------------------------------------------------------------*/
819 DEF VAR n AS INT NO-UNDO.
821 n = NUM-ENTRIES( invoice-list ).
822 IF n = 0 THEN RETURN.
824 MESSAGE n "Invoices to be printed" VIEW-AS ALERT-BOX INFORMATION.
825 RUN process/report/invcappr.p( ?, ?, invoice-list ).
827 END PROCEDURE.
829 /* _UIB-CODE-BLOCK-END */
830 &ANALYZE-RESUME
833 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE reset-local-fields V-table-Win
834 PROCEDURE reset-local-fields :
835 /*------------------------------------------------------------------------------
836 Purpose:
837 Parameters: <none>
838 Notes:
839 ------------------------------------------------------------------------------*/
841 DO WITH FRAME {&FRAME-NAME}:
843 fil_from:SCREEN-VALUE = "". fil_from:MODIFIED = No.
844 fil_to:SCREEN-VALUE = "". fil_to:MODIFIED = No.
847 /* Set the default invoice terms */
848 DEF VAR terms-index AS INT NO-UNDO.
850 FIND InvoiceTerms WHERE InvoiceTerms.TermsCode = default-terms NO-LOCK NO-ERROR.
851 IF AVAILABLE InvoiceTerms THEN
852 terms-index = LOOKUP( STRING( ROWID( InvoiceTerms ) ), cmb_Terms:PRIVATE-DATA ).
853 terms-index = MAX( terms-index, 1 ).
855 cmb_Terms:SCREEN-VALUE = cmb_Terms:ENTRY( terms-index ).
857 END.
859 END PROCEDURE.
861 /* _UIB-CODE-BLOCK-END */
862 &ANALYZE-RESUME
865 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
866 PROCEDURE send-records :
867 /*------------------------------------------------------------------------------
868 Purpose: Send record ROWID's for all tables used by
869 this file.
870 Parameters: see template/snd-head.i
871 ------------------------------------------------------------------------------*/
873 /* Define variables needed by this internal procedure. */
874 {src/adm/template/snd-head.i}
876 /* For each requested table, put it's ROWID in the output list. */
877 {src/adm/template/snd-list.i "Invoice"}
879 /* Deal with any unexpected table requests before closing. */
880 {src/adm/template/snd-end.i}
882 END PROCEDURE.
884 /* _UIB-CODE-BLOCK-END */
885 &ANALYZE-RESUME
888 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
889 PROCEDURE state-changed :
890 /* -----------------------------------------------------------
891 Purpose:
892 Parameters: <none>
893 Notes:
894 -------------------------------------------------------------*/
895 DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
896 DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
898 CASE p-state:
899 /* Object instance CASEs can go here to replace standard behavior
900 or add new cases. */
901 {src/adm/template/vstates.i}
902 END CASE.
903 END PROCEDURE.
905 /* _UIB-CODE-BLOCK-END */
906 &ANALYZE-RESUME
909 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE update-details V-table-Win
910 PROCEDURE update-details :
911 /*------------------------------------------------------------------------------
912 Purpose: Calculate all of the details of the tenants rental for the
913 period indicated.
914 ------------------------------------------------------------------------------*/
916 DO WITH FRAME {&FRAME-NAME}:
918 IF ( INPUT fil_From = ? OR INPUT fil_To = ? ) THEN RETURN.
920 DEF VAR descriptive-word AS CHAR NO-UNDO INITIAL "charges".
921 DEF VAR tenant-code AS INT NO-UNDO.
922 DEF VAR period-d1 AS DATE NO-UNDO.
923 DEF VAR period-dn AS DATE NO-UNDO.
925 tenant-code = (INPUT Invoice.EntityCode).
926 period-d1 = (INPUT fil_from).
927 period-dn = (INPUT fil_to).
928 descriptive-word = (INPUT rs_charge-type).
930 RUN build-tenant-charges( tenant-code, period-d1, period-dn ).
931 RUN make-blurb( descriptive-word, period-d1, period-dn, OUTPUT invoice-blurb,
932 OUTPUT invoice-amount, OUTPUT invoice-tax, OUTPUT invoice-total ).
934 fil_Blurb = invoice-blurb.
935 DISPLAY fil_Blurb .
936 fil_total:SCREEN-VALUE = STRING( invoice-total ).
937 Invoice.TaxAmount:SCREEN-VALUE = STRING( invoice-tax ).
938 fil_amtdue:SCREEN-VALUE = STRING( invoice-amount ).
940 END.
942 END PROCEDURE.
944 /* _UIB-CODE-BLOCK-END */
945 &ANALYZE-RESUME
948 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE verify-invoice V-table-Win
949 PROCEDURE verify-invoice :
950 /*------------------------------------------------------------------------------
951 Purpose:
952 Parameters: <none>
953 Notes:
954 ------------------------------------------------------------------------------*/
956 END PROCEDURE.
958 /* _UIB-CODE-BLOCK-END */
959 &ANALYZE-RESUME
962 /* ************************ Function Implementations ***************** */
964 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION include-lease V-table-Win
965 FUNCTION include-lease RETURNS LOGICAL
966 ( INPUT lease-code AS INT ) :
967 /*------------------------------------------------------------------------------
968 Purpose:
969 Notes: Dummy function.
970 ------------------------------------------------------------------------------*/
972 RETURN Yes. /* Function return value. */
974 END FUNCTION.
976 /* _UIB-CODE-BLOCK-END */
977 &ANALYZE-RESUME