Я настроил в ЦАП GLTran настраиваемое поле для Налоговой зоны, и оно будет заполнено вместе с Налоговой категорией и Налоговым идентификатором, если установлен флажок «Создать налоговые операции». Я также настроил «Выпуск», чтобы заполнить эту налоговую зону таблицей TaxTran.
Транзакции журнала создаются пользовательской страницей обработки, которая читает файл XML и создает документ транзакции журнала, а также выпускает его.
Все отлично работает в моем локальном экземпляре, а также в нашем экземпляре песочницы.
На производстве, когда я обрабатываю XML-файлы с помощью страницы Обработка, все в порядке. Но когда я создаю расписание автоматизации, транзакции журнала создаются с заполнением налоговой зоны, и документ публикуется без ошибок. Однако Налоговая зона не заполняется в таблице TaxTran!
У меня нет той же проблемы с расписанием автоматизации в моем локальном экземпляре или песочнице. Все эти экземпляры имеют одинаковую версию Acumatica.
public class GLTranExt : PXCacheExtension<PX.Objects.GL.GLTran>
{
#region UsrTaxZoneID
[PXDBString(10)]
[PXSelector(typeof(Search<TaxZone.taxZoneID>),
typeof(TaxZone.taxZoneID),
typeof(TaxZone.descr))]
[PXUIField(DisplayName = "Tax Zone")]
public virtual string UsrTaxZoneID { get; set; }
public abstract class usrTaxZoneID : IBqlField { }
#endregion
}
public class PostGraph_Extension : PXGraphExtension<PostGraph>
{
public PXSelect<GLTran, Where<GLTran.batchNbr, Equal<Required<GLTran.batchNbr>>, And<GLTran.accountID, Equal<Required<GLTran.accountID>>, And<GLTran.subID, Equal<Required<GLTran.subID>>, And<GLTran.branchID, Equal<Required<GLTran.branchID>>>>>>> GLTransactions;
public delegate void ReleaseBatchProcDelegate(Batch b, bool unholdBatch = false);
[PXOverride]
public void ReleaseBatchProc(Batch b, bool unholdBatch, ReleaseBatchProcDelegate baseMethod)
{
baseMethod(b, unholdBatch = false);
foreach(TaxTran rec in Base.GL_GLTran_Taxes.Select(b.Module, b.BatchNbr))
{
GLTran glTran = GLTransactions.Select(rec.RefNbr, rec.AccountID, rec.SubID, rec.BranchID);
GLTranExt glTranExt = PXCache<GLTran>.GetExtension<GLTranExt>(glTran);
if (glTranExt != null)
rec.TaxZoneID = glTranExt.UsrTaxZoneID;
Base.GL_GLTran_Taxes.Update(rec);
Base.GL_GLTran_Taxes.Cache.Persist(PXDBOperation.Update);
}
}
}