public virtual IAddressBase GetToAddress(APInvoice invoice, APTran tran, GetToAddressLineDelegate del)
        {
            int?SOID = GetSOIDRelated(tran);

            if (SOID != null)
            {
                IAddressBase returnAddress = null;

                returnAddress = PXSelectJoin <FSAddress,
                                              InnerJoin <
                                                  FSBranchLocation,
                                                  On <FSBranchLocation.branchLocationAddressID, Equal <FSAddress.addressID> >,
                                                  InnerJoin <FSServiceOrder,
                                                             On <FSServiceOrder.branchLocationID, Equal <FSBranchLocation.branchLocationID> > > >,
                                              Where <
                                                  FSServiceOrder.sOID, Equal <Required <FSServiceOrder.sOID> > > >
                                .Select(Base, SOID)
                                .RowCast <FSAddress>()
                                .FirstOrDefault();

                return(returnAddress);
            }

            return(del(invoice, tran));
        }
        public virtual IAddressBase GetToAddress(SOOrder order, SOLine line, GetToAddressLineDelegate del)
        {
            int?SOID = GetSOIDRelated(line);

            if (SOID != null)
            {
                IAddressBase returnAddress = null;

                returnAddress = PXSelectJoin <FSAddress,
                                              InnerJoin <FSServiceOrder,
                                                         On <FSServiceOrder.serviceOrderAddressID, Equal <FSAddress.addressID> > >,
                                              Where <
                                                  FSServiceOrder.sOID, Equal <Required <FSServiceOrder.sOID> > > >
                                .Select(Base, SOID)
                                .RowCast <FSAddress>()
                                .FirstOrDefault();

                return(returnAddress);
            }

            return(del(order, line));
        }