public static void Process(List <POReceipt> list, bool isMassProcess)
        {
            POReceiptEntry rg = PXGraph.CreateInstance <POReceiptEntry>();

            for (int i = 0; i < list.Count; i++)
            {
                try
                {
                    rg.Clear();
                    rg.Document.Current = PXSelect <POReceipt, Where <POReceipt.receiptType, Equal <Required <POReceipt.receiptType> >, And <POReceipt.receiptNbr, Equal <Required <POReceipt.receiptNbr> > > > > .Select(rg, list[i].ReceiptType, list[i].ReceiptNbr);

                    rg.CalculateAvalaraTax(rg.Document.Current);
                    PXProcessing <POOrder> .SetInfo(i, ActionsMessages.RecordProcessed);
                }
                catch (Exception e)
                {
                    if (isMassProcess)
                    {
                        PXProcessing <POOrder> .SetError(i, e is PXOuterException?e.Message + "\r\n" + String.Join("\r\n", ((PXOuterException)e).InnerMessages) : e.Message);
                    }
                    else
                    {
                        throw new PXMassProcessException(i, e);
                    }
                }
            }
        }
Пример #2
0
        public static void ReleaseDoc(List <POReceipt> list, bool aIsMassProcess)
        {
            POReceiptEntry            docgraph        = PXGraph.CreateInstance <POReceiptEntry>();
            DocumentList <INRegister> created         = new DocumentList <INRegister>(docgraph);
            DocumentList <APInvoice>  invoicesCreated = new DocumentList <APInvoice>(docgraph);
            INReceiptEntry            iRe             = null;
            INIssueEntry iIe = null;

            AP.APInvoiceEntry apInvoiceGraph = PXGraph.CreateInstance <APInvoiceEntry>();
            int  iRow   = 0;
            bool failed = false;

            foreach (POReceipt order in list)
            {
                try
                {
                    switch (order.ReceiptType)
                    {
                    case POReceiptType.POReceipt:
                    case POReceiptType.TransferReceipt:
                        if (iRe == null)
                        {
                            iRe = docgraph.CreateReceiptEntry();
                        }
                        docgraph.ReleaseReceipt(iRe, apInvoiceGraph, order, created, invoicesCreated, aIsMassProcess);
                        break;

                    case POReceiptType.POReturn:
                        if (iIe == null)
                        {
                            iIe = docgraph.CreateIssueEntry();
                        }
                        docgraph.ReleaseReturn(iIe, apInvoiceGraph, order, created, invoicesCreated, aIsMassProcess);
                        break;
                    }
                    PXProcessing <POReceipt> .SetInfo(iRow, ActionsMessages.RecordProcessed);
                }
                catch (Exception e)
                {
                    if (aIsMassProcess)
                    {
                        PXProcessing <POReceipt> .SetError(iRow, e);

                        failed = true;
                    }
                    else
                    {
                        throw;
                    }
                }
                iRow++;
            }
            if (failed)
            {
                throw new PXException(Messages.ReleaseOfOneOrMoreReceiptsHasFailed);
            }
        }
 public virtual IEnumerable viewDocument(PXAdapter adapter)
 {
     if (this.receiptsList.Current != null)
     {
         POReceiptEntry graph = PXGraph.CreateInstance <POReceiptEntry>();
         POReceipt      poDoc = graph.Document.Search <POReceipt.receiptNbr>(this.receiptsList.Current.ReceiptNbr, this.receiptsList.Current.ReceiptType);
         if (poDoc != null)
         {
             graph.Document.Current = poDoc;
             throw new PXRedirectRequiredException(graph, true, "Document")
                   {
                       Mode = PXBaseRedirectException.WindowMode.NewWindow
                   };
         }
     }
     return(adapter.Get());
 }