示例#1
0
        public static WFExchangeData PostModirDakhiliAction(ActionMethodParams actionMethodParams)
        {
            try
            {
                int contractId = actionMethodParams.InitialExchangeData[WfConstants.RelatedRecordIdKey].ConvertTo <int>();

                WFExchangeData ex = (WFExchangeData)actionMethodParams.WorkflowInstanceState.ExchangeData;

                ContractRule contractRule = new ContractRule(UnitOfWork);
                DomainClasses.Contract.Contract contract = contractRule.Find(contractId);



                if (contract == null)
                {
                    throw new OMFValidationException($" قرارداد با شناسه ثبت شده یافت نشد. شناسه: {contractId}");
                }


                if (actionMethodParams.ContinueInfo.ActionId == (int)WorkFlowActionType.TabdelPishghrardadBeGharardad)
                {
                    using (var uow = new UnitOfWork())
                    {
                        contract.Status       = Status.ConfirmationPreContract;
                        contract.ContractType = ContractType.RentTo;

                        // var contract_Sazes = uow.Repository<Contract_Saze>().Queryable().Where(x => x.ContractID == contract.ID).ToList();

                        foreach (var contract_Saze in contract.Contract_Sazes ?? new List <Contract_Saze>())
                        {
                            contract_Saze.Status      = Status.ConfirmationPreContract;
                            contract_Saze.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        }

                        uow.Repository <DomainClasses.Contract.Contract>().Update(contract);


                        uow.SaveChanges();
                    }


                    InvoiceRule invoiceRule = new InvoiceRule(UnitOfWork);
                    var         invoice     = invoiceRule.ConvertContractToInvoice(contract.ID, NoeFactor.RentTo);

                    var document = invoiceRule.RegisterDocument(invoice, invoice.OrganId);

                    DocumentRule documentRule = new DocumentRule();
                    documentRule.Insert(document, invoice.OrganId);
                    documentRule.SaveChanges();
                }
                return(ex);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#2
0
        public static WFExchangeData PostModirAction(ActionMethodParams actionMethodParams)
        {
            try
            {
                int invoiceId = actionMethodParams.InitialExchangeData[WfConstants.RelatedRecordIdKey].ConvertTo <int>();

                WFExchangeData ex = (WFExchangeData)actionMethodParams.WorkflowInstanceState.ExchangeData;

                InvoiceRule invoiceRule = new InvoiceRule(UnitOfWork);
                Invoice     invoice     = invoiceRule.Find(invoiceId);

                if (invoice == null)
                {
                    throw new OMFValidationException($"فاکتوری با شناسه ثبت شده یافت نشد. شناسه: {invoiceId}");
                }

                if (actionMethodParams.ContinueInfo.ActionId == (int)WorkFlowActionType.TaeedVaKhateme)
                {
                    var document = invoiceRule.RegisterDocument(invoice, invoice.OrganId);

                    DocumentRule documentRule = new DocumentRule();
                    documentRule.Insert(document, invoice.OrganId);
                    documentRule.SaveChanges();

                    invoice.Status = NoeInsertFactor.WaitingToReceive;
                    invoiceRule.Update(invoice);

                    invoiceRule.SaveChanges();
                }
                return(ex);
            }
            catch (Exception ex1)
            {
                throw;
            }
        }