1 &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
6 &Scoped-define WINDOW-NAME CURRENT-WINDOW
7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
8 /*------------------------------------------------------------------------
9 ------------------------------------------------------------------------*/
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 "".
26 {inc
/ofc-set.i
"Invoice-Terms" "default-terms" "WARNING"}
28 /* _UIB-CODE-BLOCK-END
*/
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
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 ~
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
*/
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
*/
83 /* *********************** Control Definitions
********************** */
86 /* Definitions of the field level widgets
*/
92 DEFINE BUTTON btn_cancel
102 DEFINE VARIABLE cmb_Terms
AS CHARACTER FORMAT "X(30)":U
104 VIEW-AS COMBO-BOX INNER-LINES 15
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
113 DEFINE VARIABLE fil_amtdue
AS DECIMAL FORMAT "-Z,ZZZ,ZZ9.99":U
INITIAL 0
117 FGCOLOR 12 FONT 11 NO-UNDO.
119 DEFINE VARIABLE fil_From
AS DATE FORMAT "99/99/9999":U
122 SIZE 10.14 BY 1.05 NO-UNDO.
124 DEFINE VARIABLE fil_Tenant
AS CHARACTER FORMAT "X(50)":U
126 SIZE 66.29 BY 1 NO-UNDO.
128 DEFINE VARIABLE fil_To
AS DATE FORMAT "99/99/9999":U
131 SIZE 10.14 BY 1.05 NO-UNDO.
133 DEFINE VARIABLE fil_total
AS DECIMAL FORMAT "-Z,ZZZ,ZZ9.99" INITIAL 0
139 DEFINE VARIABLE rs_charge-type
AS CHARACTER
140 VIEW-AS RADIO-SET HORIZONTAL
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
151 /* ************************ Frame Definitions
*********************** */
154 Invoice.InvoiceNo
AT ROW 1 COL 75 COLON-ALIGNED
155 LABEL "No" FORMAT "ZZZZZ9"
159 Invoice.InvoiceDate
AT ROW 2.4 COL 7.57 COLON-ALIGNED
163 Invoice.EntityCode
AT ROW 4 COL 7.57 COLON-ALIGNED
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"
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
186 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
187 SIDE-LABELS NO-UNDERLINE THREE-D
188 AT COL 1 ROW 1 SCROLLABLE
192 /* *********************** Procedure Settings
************************ */
194 &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
195 /* Settings for
THIS-PROCEDURE
197 External Tables
: TTPL.Invoice
198 Allow
: Basic
,DB-Fields
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.
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
221 /* END WINDOW DEFINITION
*/
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
*/
234 FRAME F-Main
:SCROLLABLE = FALSE
235 FRAME F-Main
:HIDDEN = TRUE.
237 /* SETTINGS
FOR FILL-IN Invoice.EntityCode
IN FRAME F-Main
239 /* SETTINGS
FOR FILL-IN fil_amtdue
IN FRAME F-Main
242 fil_Blurb
:READ-ONLY IN FRAME F-Main
= TRUE.
244 /* SETTINGS
FOR FILL-IN fil_Tenant
IN FRAME F-Main
246 /* SETTINGS
FOR FILL-IN fil_total
IN FRAME F-Main
248 /* SETTINGS
FOR FILL-IN Invoice.InvoiceDate
IN FRAME F-Main
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
254 /* _RUN-TIME-ATTRIBUTES-END
*/
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"
265 */ /* FRAME F-Main
*/
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
}
279 /* _UIB-CODE-BLOCK-END
*/
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
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.
299 /* _UIB-CODE-BLOCK-END
*/
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
).
310 /* _UIB-CODE-BLOCK-END
*/
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
*/
321 /* _UIB-CODE-BLOCK-END
*/
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 */
332 /* _UIB-CODE-BLOCK-END
*/
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"}
343 /* _UIB-CODE-BLOCK-END
*/
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"}
353 /* _UIB-CODE-BLOCK-END
*/
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"}
365 /* _UIB-CODE-BLOCK-END
*/
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.
376 /* _UIB-CODE-BLOCK-END
*/
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"}
387 /* _UIB-CODE-BLOCK-END
*/
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"}
397 /* _UIB-CODE-BLOCK-END
*/
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"}
407 /* _UIB-CODE-BLOCK-END
*/
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.
418 /* _UIB-CODE-BLOCK-END
*/
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
429 /* _UIB-CODE-BLOCK-END
*/
435 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
438 /* *************************** Main Block
*************************** */
440 /* _UIB-CODE-BLOCK-END
*/
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.
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
}
474 /* _UIB-CODE-BLOCK-END
*/
478 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE assign-invoice-line V-table-Win
479 PROCEDURE assign-invoice-line
:
480 /*------------------------------------------------------------------------------
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.
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:
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 .
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.
519 ON ASSIGN OF InvoiceLine.YourShare
REVERT.
524 /* _UIB-CODE-BLOCK-END
*/
528 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancel-changes V-table-Win
529 PROCEDURE cancel-changes
:
530 /*------------------------------------------------------------------------------
534 ------------------------------------------------------------------------------*/
536 RUN notify
( 'hide
, CONTAINER-SOURCE'
:U
).
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
).
548 /* _UIB-CODE-BLOCK-END
*/
552 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE confirm-changes V-table-Win
553 PROCEDURE confirm-changes
:
554 /*------------------------------------------------------------------------------
558 ------------------------------------------------------------------------------*/
561 IF RETURN-VALUE = "FAIL" THEN RETURN.
563 RUN notify
( 'hide
, CONTAINER-SOURCE'
:u
).
564 RUN dispatch
( 'update-record'
:U
).
566 RUN notify
( 'open-query
, RECORD-SOURCE'
:U
).
567 RUN dispatch
( 'exit'
:U
).
571 /* _UIB-CODE-BLOCK-END
*/
575 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE delete-invoice V-table-Win
576 PROCEDURE delete-invoice
:
577 /*------------------------------------------------------------------------------
581 ------------------------------------------------------------------------------*/
583 IF NOT AVAILABLE Invoice
THEN RETURN.
585 FIND Current Invoice
EXCLUSIVE-LOCK.
590 /* _UIB-CODE-BLOCK-END
*/
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
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.
*/
606 IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
609 /* _UIB-CODE-BLOCK-END
*/
613 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-assign-statement V-table-Win
614 PROCEDURE inst-assign-statement
:
615 /*------------------------------------------------------------------------------
619 ------------------------------------------------------------------------------*/
620 DEF VAR paid-to-list
AS CHAR NO-UNDO.
622 DO WITH FRAME {&FRAME-NAME}:
625 Invoice.InvoiceStatus
= "U"
626 Invoice.InvoiceType
= "RENT"
627 Invoice.EntityType
= "T"
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.
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")
644 Invoice.ToPay
= RIGHT-TRIM( paid-to-list
, ",").
649 /* _UIB-CODE-BLOCK-END
*/
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
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}.
673 /* _UIB-CODE-BLOCK-END
*/
677 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-enable-fields V-table-Win
678 PROCEDURE inst-enable-fields
:
679 /*------------------------------------------------------------------------------
683 ------------------------------------------------------------------------------*/
685 DO WITH FRAME {&FRAME-NAME}:
687 Invoice.TaxAmount
:HIDDEN = AVAILABLE Office
AND Office.GST
= 0.
688 Invoice.TaxAmount
:SENSITIVE = No.
694 /* _UIB-CODE-BLOCK-END
*/
698 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-initialize V-table-Win
699 PROCEDURE inst-initialize
:
700 /*------------------------------------------------------------------------------
704 ------------------------------------------------------------------------------*/
706 RUN dispatch
( 'add-record'
:U
).
710 /* _UIB-CODE-BLOCK-END
*/
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
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
) .
736 /* _UIB-CODE-BLOCK-END
*/
740 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE override-add-record V-table-Win
741 PROCEDURE override-add-record
:
742 /*------------------------------------------------------------------------------
746 ------------------------------------------------------------------------------*/
748 RUN notify
( 'set-busy
, CONTAINER-SOURCE'
:U
).
750 IF AVAILABLE Invoice
THEN
753 IF RETURN-VALUE = "FAIL" THEN DO:
754 RUN notify
( 'set-idle
, CONTAINER-SOURCE'
:U
).
757 RUN dispatch
( 'update-record'
:U
).
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}.
775 /* _UIB-CODE-BLOCK-END
*/
779 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-destroy V-table-Win
780 PROCEDURE pre-destroy
:
781 /*------------------------------------------------------------------------------
785 ------------------------------------------------------------------------------*/
787 IF LAST-EVENT:FUNCTION = "WINDOW-CLOSE" THEN RUN cancel-changes.
791 /* _UIB-CODE-BLOCK-END
*/
795 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-row-available V-table-Win
796 PROCEDURE pre-row-available
:
797 /*------------------------------------------------------------------------------
801 ------------------------------------------------------------------------------*/
807 /* _UIB-CODE-BLOCK-END
*/
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
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
).
829 /* _UIB-CODE-BLOCK-END
*/
833 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE reset-local-fields V-table-Win
834 PROCEDURE reset-local-fields
:
835 /*------------------------------------------------------------------------------
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
).
861 /* _UIB-CODE-BLOCK-END
*/
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
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
}
884 /* _UIB-CODE-BLOCK-END
*/
888 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
889 PROCEDURE state-changed
:
890 /* -----------------------------------------------------------
894 -------------------------------------------------------------*/
895 DEFINE INPUT PARAMETER p-issuer-hdl
AS HANDLE NO-UNDO.
896 DEFINE INPUT PARAMETER p-state
AS CHARACTER NO-UNDO.
899 /* Object instance CASEs can go here to replace standard behavior
901 {src
/adm
/template
/vstates.i
}
905 /* _UIB-CODE-BLOCK-END
*/
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
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.
936 fil_total
:SCREEN-VALUE = STRING( invoice-total
).
937 Invoice.TaxAmount
:SCREEN-VALUE = STRING( invoice-tax
).
938 fil_amtdue
:SCREEN-VALUE = STRING( invoice-amount
).
944 /* _UIB-CODE-BLOCK-END
*/
948 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE verify-invoice V-table-Win
949 PROCEDURE verify-invoice
:
950 /*------------------------------------------------------------------------------
954 ------------------------------------------------------------------------------*/
958 /* _UIB-CODE-BLOCK-END
*/
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 /*------------------------------------------------------------------------------
969 Notes
: Dummy function.
970 ------------------------------------------------------------------------------*/
972 RETURN Yes.
/* Function return value.
*/
976 /* _UIB-CODE-BLOCK-END
*/