Beispiel #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;
            }
        }
Beispiel #2
0
        private async Task <int> createNumberDocumentAsync(int organId)
        {
            var          count         = 0;
            DocumentRule documentRule  = new DocumentRule();
            var          documentQuery = await documentRule.GetAllByOrganIdAsync(organId);

            count = documentQuery.Count();

            return(count++);
        }
Beispiel #3
0
        private int createNumberDocument(int organId)
        {
            var          count        = 0;
            DocumentRule documentRule = new DocumentRule();

            var documentQuery = documentRule.GetAllByOrganId(organId);

            count = documentQuery.Count();

            return(count++);
        }
Beispiel #4
0
        private async Task <Document> createDocument(PayRecevie payRecevie, int organId, int numberDocument)
        {
            FinanYearRule finanYearRule = new FinanYearRule();
            var           finanYears    = await finanYearRule.GetAllByOrganIdAsync(organId);

            var finanYear = finanYears.Where(x => x.Closed == false).SingleOrDefault();

            Document document = new Document();

            document.Credit      = payRecevie.Amount;
            document.DateTime    = PersianDateUtils.ToDateTime(payRecevie.DisplayDate);
            document.Debit       = payRecevie.Amount;
            document.Description = payRecevie.Description;
            document.DisplayDate = payRecevie.DisplayDate;
            document.IsManual    = false;
            document.Status      = ZhivarEnums.DocumentStatus.TaeedShode;
            document.ObjectState = OMF.Common.Enums.ObjectState.Added;
            if (numberDocument != 0)
            {
                document.Number  = numberDocument;
                document.Number2 = numberDocument;
            }
            else
            {
                DocumentRule documentRule = new DocumentRule();
                document.Number = await documentRule.createNumberDocumentAsync(organId);

                document.Number2 = await documentRule.createNumberDocumentAsync(organId);
            }

            document.Status       = ZhivarEnums.DocumentStatus.TaeedShode;
            document.StatusString = "تایید شده";
            document.OrganId      = organId;
            document.FinanYear    = finanYear;
            document.FinanYearId  = finanYear.ID;
            List <Transaction> transactions = new List <Transaction>();

            if (payRecevie.IsReceive)
            {
                document.Type = ZhivarEnums.NoeDoc.Recive;
                transactions  = await RegisterTransactionRecevie(document, payRecevie, organId);
            }
            else
            {
                document.Type = ZhivarEnums.NoeDoc.Pay;
                transactions  = await RegisterTransactionPay(document, payRecevie, organId);
            }


            document.Transactions = transactions;

            return(document);
        }
Beispiel #5
0
 private void convertHD2Data(int size)
 {
     try
     {
         int begincode = 0;;
         if (Session["attachmentconvertbegincode"] != null)
         {
             begincode = int.Parse(Session["attachmentconvertbegincode"].ToString());
         }
         RmsPM.BLL.DocumentRule documentRule = DocumentRule.Instance();
         int i = documentRule.ConvertFileToAttachment(size, ref begincode);
         if (Session["attachmentconvertcount"] == null)
         {
             Session["attachmentconvertcount"] = 0;
         }
         Session["attachmentconvertcount"]     = int.Parse(Session["attachmentconvertcount"].ToString()) + i;
         Session["attachmentconvertbegincode"] = begincode;
         if (i > 0)
         {
             Session["attachmentconvertmsg"] = "转换中请等待,已转换" + Session["attachmentconvertcount"].ToString() + "个附件......";
             Label1.Text   = Session["attachmentconvertmsg"].ToString();
             TextBox1.Text = Session["attachmentconvertsize"].ToString();
             Response.Write(Rms.Web.JavaScript.Reload(true));
         }
         else
         {
             Label1.Text = "转换完成,共转换" + Session["attachmentconvertcount"].ToString() + "个附件.";
             Session["attachmentconvertsize"]      = null;
             Session["attachmentconvertmsg"]       = null;
             Session["attachmentconvertcount"]     = null;
             Session["attachmentconvertbegincode"] = null;
             //Response.Write(Rms.Web.JavaScript.Alert(true, "ok"));
         }
     }
     catch (Exception exp)
     {
         Session["attachmentconvertsize"]      = null;
         Session["attachmentconvertmsg"]       = null;
         Session["attachmentconvertcount"]     = null;
         Session["attachmentconvertbegincode"] = null;
         Label1.Text = Label1.Text + " ---- 转换中发生错误,错误信息:<br>" + exp.ToString();
     }
 }
Beispiel #6
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string AttachMentCode = "" + Request["AttachMentCode"];

            if (AttachMentCode == "")
            {
                return;
            }

            if (!Page.IsPostBack)
            {
                try
                {
                    //modi by simon
                    DocumentRule documentRule = DocumentRule.Instance();
                    documentRule.GetAttachmentByCode(AttachMentCode);
                    Response.Clear();
                    Response.BufferOutput = true;
                    Response.ContentType  = "image/jpeg";
                    Response.BinaryWrite(documentRule.Content);
                    Response.Flush();
                    Response.End();

                    /*
                     * EntityData entity = DAL.EntityDAO.WBSDAO.GetAttachMentByCode(AttachMentCode);
                     *                  if (entity.HasRecord())
                     *                  {
                     *                          if ( !entity.CurrentRow.IsNull("Content") )
                     *                                  Response.BinaryWrite((byte[]) entity.CurrentRow["Content"] );
                     *                  }
                     *                  entity.Dispose();
                     * */
                }
                catch (Exception ex)
                {
                    ApplicationLog.WriteLog(this.ToString(), ex, "读取图片失败");
                }
            }
        }
Beispiel #7
0
        public async Task <HttpResponseMessage> DeleteInvoices([FromBody] string strIds)
        {
            var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

            string failurs = "";

            string[] values = strIds.Split(',');
            for (int i = 0; i < values.Length - 1; i++)
            {
                var id = Convert.ToInt32(values[i].Trim());

                DocumentRule   documentRule    = new DocumentRule();
                PayRecevieRule payRecevieRule  = new PayRecevieRule();
                var            payRecevieQuery = await payRecevieRule.GetByInvoiceIdAsync(id);

                if (payRecevieQuery.Any())
                {
                    failurs += "<br/>" + "برای این فاکنور دریافت/ پرداخت انجام شده است برای حذف باید دریافت و پرداخت حذف گردد.";
                }
                else
                {
                    await Rule.DeleteAsync(id);

                    await this.BusinessRule.UnitOfWork.SaveChangesAsync();
                }
            }



            if (!string.IsNullOrEmpty(failurs))
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.ValidationError, data = failurs }));
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = "" }));
            }
        }
Beispiel #8
0
 private void convertData2HD(int size)
 {
     try
     {
         RmsPM.BLL.DocumentRule documentRule = DocumentRule.Instance();
         LogHelper.WriteLog("TestLog", new Exception("TestLog"));
         int i = documentRule.ConvertAttachmentToFile(size);
         if (Session["attachmentconvertcount"] == null)
         {
             Session["attachmentconvertcount"] = 0;
         }
         Session["attachmentconvertcount"] = (int)Session["attachmentconvertcount"] + i;
         if (i > 0)
         {
             Session["attachmentconvertmsg"] = "转换中请等待,已转换" + Session["attachmentconvertcount"].ToString() + "个附件......";
             Label1.Text   = Session["attachmentconvertmsg"].ToString();
             TextBox1.Text = Session["attachmentconvertsize"].ToString();
             Response.Write(Rms.Web.JavaScript.Reload(true));
         }
         else
         {
             Label1.Text = "转换完成,共转换" + Session["attachmentconvertcount"].ToString() + "个附件.";
             Session["attachmentconvertsize"]      = null;
             Session["attachmentconvertmsg"]       = null;
             Session["attachmentconvertcount"]     = null;
             Session["attachmentconvertbegincode"] = null;
             //Response.Write(Rms.Web.JavaScript.Alert(true, "ok"));
         }
     }
     catch (Exception exp)
     {
         Session["attachmentconvertsize"]      = null;
         Session["attachmentconvertmsg"]       = null;
         Session["attachmentconvertcount"]     = null;
         Session["attachmentconvertbegincode"] = null;
         Label1.Text = Label1.Text + " ---- 转换中发生错误,错误信息:<br>" + exp.ToString();
     }
 }
Beispiel #9
0
        private void OutputAttachment(string AttachMentCode, string AttachMent, DocumentRule documentRule)
        {
            documentRule.GetAttachmentByCode(AttachMentCode);
            Response.Clear();
            Response.ContentType = documentRule.ContentType;
            switch (AttachMent)
            {
            case "0":
                break;

            case "1":
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(documentRule.FileName));
                break;

            default:
                //Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filename));
                Response.AppendHeader("Content-Disposition", "filename=" + Server.UrlEncode(documentRule.FileName));
                break;
            }
            Response.BinaryWrite(documentRule.Content);
            Response.Flush();
            Response.End();
        }
Beispiel #10
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;
            }
        }
Beispiel #11
0
        private void InitPage()
        {
            string       AttachMentCode = Request.QueryString["AttachMentCode"] + "";
            DocumentRule documentRule   = DocumentRule.Instance();

            new ViewAttachment().OutputAttachment(Response, AttachMentCode, "", documentRule);

            /*
             * EntityData entityAttachMent = RemindDAO.GetNoticeAttachMentByCode(AttachMentCode);
             *          DataRow dr = entityAttachMent.CurrentRow;
             *
             *
             *          if (dr["Content"].ToString() == "" || dr["Content"] == null)
             *          {
             *                  return;
             *          }
             *
             *          if (dr["Content_Type"].ToString() == "" || dr["Content_Type"] == null)
             *          {
             *                  return;
             *          }
             *
             *          string filename = "";
             *
             *          if (dr["filename"] != null)
             *          {
             *                  filename = dr["filename"].ToString();
             *          }
             *
             *          Response.ContentType = dr["Content_Type"].ToString();
             *          Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filename));
             *          Response.BinaryWrite((byte[]) dr["Content"]);
             *          Response.Write("window.close();");
             *          Response.End();
             * */
        }
Beispiel #12
0
    private void convertHD2HD(int size)
    {
        int begincode = 0;;

        if (Session["attachmentconvertbegincode"] != null)
        {
            begincode = int.Parse(Session["attachmentconvertbegincode"].ToString());
        }
        RmsPM.BLL.DocumentRule documentRule = DocumentRule.Instance();
        init();
        if (_SavePathMode == AttachmentSavePathMode.ROOT)
        {
            Label1.Text = "路径选项配置不正确,无法转换";
            return;
        }
        EntityData entity = new EntityData();

        using (SingleEntityDAO dao = new SingleEntityDAO("AttachMent"))
        {
            dao.FillEntity("select top " + size.ToString() + " * from attachment where content is  null and guidname is not null and attachmentcode>" + begincode + " order by attachmentcode", "", "", entity, "AttachMent");
        }
        DataTable dt    = entity.CurrentTable;
        int       count = 0;

        if (dt.Rows.Count > 0)
        {
            Rms.LogHelper.LogHelper.Warn("附件目录转换开始 code>" + begincode.ToString());
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    DirectoryInfo dir = new DirectoryInfo(GetPath(dr["createdate"].ToString()));
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }
                    FileInfo file = new FileInfo(Path.Combine(_Path, dr["guidname"].ToString()));
                    if (file.Exists)
                    {
                        file.MoveTo(GetFileName(file.Name, dr["createdate"].ToString()));
                    }
                    else
                    {
                        Rms.LogHelper.LogHelper.Warn("文件未找到" + file.Name);
                    }
                    if (int.Parse(dr["attachmentcode"].ToString()) > begincode)
                    {
                        begincode = int.Parse(dr["attachmentcode"].ToString());
                    }
                }
                Session["attachmentconvertbegincode"] = begincode;
                Session["attachmentconvertmsg"]       = "转换中请等待";
                Response.Write(Rms.Web.JavaScript.Reload(true));
            }
            catch (Exception exp)
            {
                Rms.LogHelper.LogHelper.Warn("转换错误", exp);
                Label1.Text = "转换异常中止,请查看错误日志";
            }
        }
        else
        {
            Label1.Text = "转换完成;";
            Session["attachmentconvertsize"]      = null;
            Session["attachmentconvertmsg"]       = null;
            Session["attachmentconvertcount"]     = null;
            Session["attachmentconvertbegincode"] = null;
        }
    }
 private void GetDefaultDocumentRule()
 {
     try
     {
         DocumentRule dr = new DocumentRule();
         WebUtility.WriteAjaxResult(true, null, dr);
     }
     catch (Exception E)
     {
         WebUtility.WriteAjaxError("err_file_io", E);
     }
 }
Beispiel #14
0
        private async Task <Document> CreateDocumentChangeChequeStatus(ChequesAndStatsVM chequesAndStatsVM, int organId)
        {
            FinanYearRule finanYearRule = new FinanYearRule();

            var finanYears = await finanYearRule.GetAllByOrganIdAsync(organId);

            var        finanYear  = finanYears.Where(x => x.Closed == false).SingleOrDefault();
            ChequeRule chequeRule = new ChequeRule();
            var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

            DocumentRule documentRule = new DocumentRule();

            Document document = new Document();

            document.Credit      = cheque.Amount;
            document.DateTime    = PersianDateUtils.ToDateTime(chequesAndStatsVM.date);
            document.Debit       = cheque.Amount;
            document.Description = chequesAndStatsVM.description;
            document.DisplayDate = chequesAndStatsVM.date;
            document.IsManual    = false;
            document.Status      = ZhivarEnums.DocumentStatus.TaeedShode;
            document.Number      = await documentRule.createNumberDocumentAsync(organId);

            document.Number2 = await documentRule.createNumberDocumentAsync(organId);

            document.StatusString = "تایید شده";
            document.OrganId      = organId;
            document.FinanYear    = finanYear;
            document.FinanYearId  = finanYear.ID;
            document.Type         = ZhivarEnums.NoeDoc.Recive;

            List <Transaction> transactions = new List <Transaction>();

            AccountRule accountRule = new AccountRule();
            var         accounts    = await accountRule.GetAllByOrganIdAsync(organId);

            switch (chequesAndStatsVM.receiveType)
            {
            case "cash":
            {
                var accountCash = accounts.Where(x => x.ComplteCoding == "1101" + chequesAndStatsVM.detailAccount.Code).SingleOrDefault();

                transactions.Add(new Transaction()
                    {
                        //AccDocument = document,
                        AccountId   = accountCash.ID,
                        Amount      = cheque.Amount,
                        Description = chequesAndStatsVM.description,
                        Credit      = 0,
                        Debit       = cheque.Amount,
                        IsCredit    = false,
                        IsDebit     = true,
                        DocumentId  = document.ID,
                        Date        = PersianDateUtils.ToDateTime(chequesAndStatsVM.date),
                        DisplayDate = chequesAndStatsVM.date
                    });
                break;
            }

            case "bank":
            {
                var accountBank = accounts.Where(x => x.ComplteCoding == "1103" + chequesAndStatsVM.detailAccount.Code).SingleOrDefault();

                transactions.Add(new Transaction()
                    {
                        //AccDocument = document,
                        AccountId   = accountBank.ID,
                        Amount      = cheque.Amount,
                        Description = chequesAndStatsVM.description,
                        Credit      = 0,
                        Debit       = cheque.Amount,
                        IsCredit    = false,
                        IsDebit     = true,
                        DocumentId  = document.ID,
                        Date        = PersianDateUtils.ToDateTime(chequesAndStatsVM.date),
                        DisplayDate = chequesAndStatsVM.date
                    });
                break;
            }
            }

            var asnadDreaftaniAccount = accounts.Where(x => x.ComplteCoding == "1105" + cheque.Contact.Code).SingleOrDefault();

            transactions.Add(new Transaction()
            {
                //AccDocument = document,
                AccountId   = asnadDreaftaniAccount.ID,
                Amount      = cheque.Amount,
                Credit      = cheque.Amount,
                Debit       = 0,
                Description = chequesAndStatsVM.description,
                DocumentId  = document.ID,
                IsCredit    = true,
                IsDebit     = false,
                Date        = PersianDateUtils.ToDateTime(chequesAndStatsVM.date),
                DisplayDate = chequesAndStatsVM.date
            });


            document.Transactions = transactions;

            return(document);
        }
Beispiel #15
0
        public async Task <HttpResponseMessage> SaveInvoice([FromBody] InvoiceVM invoiceVM)
        {
            try
            {
                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

                FinanYearRule finanYearRule = new FinanYearRule();
                var           finanYears    = await finanYearRule.GetAllByOrganIdAsync(organId);

                var finanYear = finanYears.Where(x => x.Closed == false && x.OrganId == organId);

                invoiceVM.InvoiceItems = invoiceVM.InvoiceItems.Where(x => x.Item != null).ToList();

                foreach (var invoiceItem in invoiceVM.InvoiceItems)
                {
                    if (invoiceItem.Item != null)
                    {
                        invoiceItem.ItemId = invoiceItem.Item.ID;
                    }
                }

                if (invoiceVM.Contact != null)
                {
                    invoiceVM.ContactId = invoiceVM.Contact.ID;
                }

                Invoice invoice = new Invoice();
                Mapper.Map(invoiceVM, invoice);
                invoice.OrganId = organId;

                //if (invoice.Contact != null)
                //{

                //    invoice.ContactId = invoice.Contact.ID;
                //}

                //   invoice.InvoiceItems = invoice.InvoiceItems.Where(x => x.ItemId != 0).ToList();



                InvoiceValidate validator = new InvoiceValidate();
                FluentValidation.Results.ValidationResult results = validator.Validate(invoice);

                string failurs = "";

                if (!results.IsValid)
                {
                    foreach (var error in results.Errors)
                    {
                        failurs += "<br/>" + error.ErrorMessage;
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.ValidationError, data = failurs }));
                }



                if (invoice.ID > 0)
                {
                    foreach (var invoiceItem in invoice.InvoiceItems)
                    {
                        invoiceItem.InvoiceId = invoice.ID;

                        if (invoiceItem.ID > 0)
                        {
                            invoiceItem.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        }
                        else
                        {
                            invoiceItem.ObjectState = OMF.Common.Enums.ObjectState.Added;
                        }

                        //if (invoiceItem.Item != null)
                        //    invoiceItem.Item = null;//.ObjectState = OMF.Common.Enums.ObjectState.Unchanged;
                    }

                    invoice.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                }

                else
                {
                    foreach (var invoiceItem in invoice.InvoiceItems)
                    {
                        invoiceItem.ObjectState = OMF.Common.Enums.ObjectState.Added;

                        //if (invoiceItem.Item != null)
                        //    invoiceItem.Item = null;//.ObjectState = OMF.Common.Enums.ObjectState.Unchanged;
                    }

                    invoice.ObjectState = OMF.Common.Enums.ObjectState.Added;
                }

                this.BusinessRule.UnitOfWork.RepositoryAsync <Invoice>().InsertOrUpdateGraph(invoice);
                ContactRule contactRule = new ContactRule();
                await contactRule.UpdateContact(invoice.InvoiceType, invoice.ContactId);

                //await this.BusinessRule.UnitOfWork.SaveChangesAsync();

                if (invoice.Status == ZhivarEnums.NoeInsertFactor.WaitingToReceive)
                {
                    var document = await Rule.RegisterDocumentAsync(invoiceVM, organId);

                    DocumentRule documentRule = new DocumentRule();
                    await documentRule.InsertAsync(document, organId);

                    await documentRule.SaveChangesAsync();

                    invoice.DocumentID = document.ID;
                    this.BusinessRule.UnitOfWork.RepositoryAsync <Invoice>().Update(invoice);
                    //await this.BusinessRule.UnitOfWork.SaveChangesAsync();
                }
                await this.BusinessRule.UnitOfWork.SaveChangesAsync();

                // await RegisterDocument(invoice, organId);

                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = invoice }));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #16
0
        public virtual async Task <HttpResponseMessage> ChangeChequeStatus([FromBody] ChequesAndStatsVM chequesAndStatsVM)
        {
            var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

            ChequeVM chequeVM = new ChequeVM();

            switch (chequesAndStatsVM.change)
            {
            // وصول چک پرداختی
            case "PaidChequeReceipt":
            {
                chequesAndStatsVM.description = " وصول چک پرداختی";
                var doucument = await CreateDocumentPaidChequeReceipt(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.Passed;
                chequeRule.Update(cheque);
                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();



                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // وصول چک دریافتی
            case "ReceivedChequeReceipt":
            {
                chequesAndStatsVM.description = " وصول چک دریافتی";

                var doucument = await CreateDocumentChangeChequeStatus(chequesAndStatsVM, organId);


                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.Passed;
                chequeRule.Update(cheque);

                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // وصول چک واگذار شده به بانک
            case "DepositChequeReceipt":
            {
                chequesAndStatsVM.description = "وصول چک واگذار شده به بانک";
                var doucument = await CreateDocumentDepositChequeReceipt(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.Passed;
                chequeRule.Update(cheque);

                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // واگذاری چک به بانک
            case "ReceivedChequeDeposit":
            {
                chequesAndStatsVM.description = "واگذاری چک به بانک";

                var doucument = await CreateDocumentReceivedChequeDeposit(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.InProgress;

                BankRule bankRule = new BankRule();
                var      banks    = await bankRule.GetAllByOrganIdAsync(organId);

                var bank = banks.Where(x => x.Code == chequesAndStatsVM.detailAccount.Code).SingleOrDefault();
                cheque.DepositBankId = bank.ID;

                chequeRule.Update(cheque);
                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();



                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // عودت دادن چک پرداختی
            case "PaidChequeReturn":
            {
                //chequesAndStatsVM.description = "عودت دادن چک پرداختی";

                var doucument = await CreateDocumentPaidChequeReturn(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.ChequeReturn;
                chequeRule.Update(cheque);

                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // عودت دادن چک دریافتی
            case "ReceivedChequeReturn":
            {
                chequesAndStatsVM.description = "عودت دادن چک دریافتی";

                var doucument = await CreateDocumentReceivedChequeReturn(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.ChequeReturn;
                chequeRule.Update(cheque);

                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // تغییر وضعیت چک پرداختی به پاس نشده
            case "PaidChequeToNotPass":
            {
                chequesAndStatsVM.description = "تغییر وضعیت چک پرداختی به پاس نشده";
                chequesAndStatsVM.date        = PersianDateUtils.ToPersianDate(DateTime.Now);

                var doucument = await CreateDocumentPaidChequeToNotPass(chequesAndStatsVM, organId);

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.Normal;
                chequeRule.Update(cheque);
                await chequeRule.SaveChangesAsync();

                DocumentRule documentRule = new DocumentRule();
                await documentRule.InsertAsync(doucument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }

            // تغییر وضعیت چک دریافتی به وصول نشده
            case "ReceivedChequeToNotPass":
            {
                chequesAndStatsVM.description = "تغییر وضعیت چک دریافتی به وصول نشده";

                ChequeRule chequeRule = new ChequeRule();
                var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

                PayRecevieRule  payRecevieRule = new PayRecevieRule();
                List <Document> doucuments     = await payRecevieRule.GetDoucumentIDByChequeIdAsync(chequesAndStatsVM.chequeId);

                cheque.Status = ZhivarEnums.ChequeStatus.Normal;
                chequeRule.Update(cheque);

                Document     newDocument  = new Document();
                DocumentRule documentRule = new DocumentRule();

                foreach (var document in doucuments)
                {
                    newDocument = new Document()
                    {
                        Credit         = document.Credit,
                        Description    = chequesAndStatsVM.description,
                        Debit          = document.Debit,
                        DateTime       = DateTime.Now,
                        DisplayDate    = PersianDateUtils.ToPersianDate(DateTime.Now),
                        FinanYear      = document.FinanYear,
                        FinanYearId    = document.FinanYearId,
                        IsFirsDocument = document.IsFirsDocument,
                        IsManual       = document.IsManual,
                        Number         = await documentRule.createNumberDocumentAsync(organId),
                        Number2        = await documentRule.createNumberDocumentAsync(organId),
                        OrganId        = organId,
                        Status         = ZhivarEnums.DocumentStatus.TaeedShode,
                        StatusString   = document.StatusString,
                        Type           = ZhivarEnums.NoeDoc.Pay
                    };
                    TransactionRule transactionRule = new TransactionRule();
                    var             transactions    = await transactionRule.GetAllByOrganIdAsync(organId);

                    transactions = transactions.Where(x => x.DocumentId == document.ID).ToList();

                    newDocument.Transactions = new List <Transaction>();
                    Transaction newTransaction = new Transaction();

                    foreach (var transaction in transactions)
                    {
                        //newTransaction.AccDocument = newDocument;
                        //newTransaction.Account = transaction.Account;
                        newTransaction.AccountId             = transaction.AccountId;
                        newTransaction.Amount                = transaction.Amount;
                        newTransaction.Cheque                = transaction.Cheque;
                        newTransaction.ChequeId              = transaction.ChequeId;
                        newTransaction.ContactId             = transaction.ContactId;
                        newTransaction.Credit                = transaction.Debit;
                        newTransaction.Date                  = DateTime.Now;
                        newTransaction.Debit                 = transaction.Credit;
                        newTransaction.Description           = chequesAndStatsVM.description;
                        newTransaction.DisplayDate           = PersianDateUtils.ToPersianDate(DateTime.Now);
                        newTransaction.DocumentId            = newDocument.ID;
                        newTransaction.InvoiceId             = transaction.InvoiceId;
                        newTransaction.IsCredit              = transaction.IsDebit;
                        newTransaction.IsDebit               = transaction.IsCredit;
                        newTransaction.PaymentMethod         = transaction.PaymentMethod;
                        newTransaction.PaymentMethodString   = transaction.PaymentMethodString;
                        newTransaction.Reference             = transaction.Reference;
                        newTransaction.RefTrans              = transaction.RefTrans;
                        newTransaction.Remaining             = transaction.Remaining;
                        newTransaction.RemainingType         = transaction.RemainingType;
                        newTransaction.RowNumber             = transaction.RowNumber;
                        newTransaction.Stock                 = transaction.Stock;
                        newTransaction.TransactionTypeString = transaction.TransactionTypeString;
                        newTransaction.Type                  = transaction.Type;
                        newTransaction.UnitPrice             = transaction.UnitPrice;

                        newDocument.Transactions.Add(newTransaction);
                    }
                }

                await documentRule.InsertAsync(newDocument, organId);

                await documentRule.SaveChangesAsync();


                //AccountNumber: ""
                chequeVM.Amount     = cheque.Amount;
                chequeVM.BankBranch = cheque.BankBranch;
                //chequeVM.BankDetailAccount: null
                chequeVM.BankName     = cheque.BankName;
                chequeVM.ChequeNumber = cheque.ChequeNumber;
                chequeVM.Contact      = cheque.Contact;
                chequeVM.Date         = cheque.Date;
                chequeVM.DepositBank  = cheque.DepositBank;
                //chequeVM.DepositDate = cheque.DepositBank;
                chequeVM.DisplayDate = cheque.DisplayDate;
                chequeVM.ID          = cheque.ID;
                //chequeVM.MyCheque = cheque.DepositBank;
                //chequeVM.Overdue = cheque.Overdue;
                //chequeVM.Payee = cheque.Payee;
                //chequeVM.Payer = cheque.Payer;
                chequeVM.ReceiptDate = cheque.ReceiptDate;
                //chequeVM.ReturnDate = cheque.ReturnDate;
                chequeVM.Status       = cheque.Status;
                chequeVM.StatusString = "وصول شده";
                break;
            }


            default:
                break;
            }

            return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = chequeVM }));
        }
Beispiel #17
0
        private async Task <Document> CreateDocumentPaidChequeReceipt(ChequesAndStatsVM chequesAndStatsVM, int organId)
        {
            FinanYearRule finanYearRule = new FinanYearRule();
            var           finanYears    = await finanYearRule.GetAllByOrganIdAsync(organId);

            var        finanYear  = finanYears.Where(x => x.Closed == false).SingleOrDefault();
            ChequeRule chequeRule = new ChequeRule();
            var        cheque     = await chequeRule.FindAsync(chequesAndStatsVM.chequeId);

            //var chequeBanks = await _chequeBankService.GetAllByOrganIdAsync(organId);
            var chequeBanks = this.BusinessRule.UnitOfWork.RepositoryAsync <ChequeBank>().Queryable().Where(x => x.OrganId == organId);
            var chequeBank  = chequeBanks.Where(x => x.ChequeId == cheque.ID).SingleOrDefault();

            BankRule bankRule = new BankRule();
            var      bank     = await bankRule.FindAsync(chequeBank.BankId);

            DocumentRule documentRule = new DocumentRule();

            Document document = new Document();

            document.Credit      = cheque.Amount;
            document.DateTime    = PersianDateUtils.ToDateTime(chequesAndStatsVM.date);
            document.Debit       = cheque.Amount;
            document.Description = chequesAndStatsVM.description;
            document.DisplayDate = chequesAndStatsVM.date;
            document.IsManual    = false;
            document.Status      = ZhivarEnums.DocumentStatus.TaeedShode;
            document.Number      = await documentRule.createNumberDocumentAsync(organId);

            document.Number2 = await documentRule.createNumberDocumentAsync(organId);

            document.StatusString = "تایید شده";
            document.OrganId      = organId;
            document.FinanYear    = finanYear;
            document.FinanYearId  = finanYear.ID;
            document.Type         = ZhivarEnums.NoeDoc.Recive;

            List <Transaction> transactions = new List <Transaction>();

            AccountRule accountRule = new AccountRule();
            var         accounts    = await accountRule.GetAllByOrganIdAsync(organId);

            var accountPay = accounts.Where(x => x.ComplteCoding == "2102" + bank.Code).SingleOrDefault();

            transactions.Add(new Transaction()
            {
                //AccDocument = document,
                AccountId   = accountPay.ID,
                Amount      = cheque.Amount,
                Description = chequesAndStatsVM.description,
                Credit      = 0,
                Debit       = cheque.Amount,
                IsCredit    = false,
                IsDebit     = true,
                DocumentId  = document.ID,
                Date        = PersianDateUtils.ToDateTime(chequesAndStatsVM.date),
                DisplayDate = chequesAndStatsVM.date
            });

            var accountBank = accounts.Where(x => x.ComplteCoding == "1103" + bank.Code).SingleOrDefault();

            transactions.Add(new Transaction()
            {
                //AccDocument = document,
                AccountId   = accountBank.ID,
                Amount      = cheque.Amount,
                Credit      = cheque.Amount,
                Debit       = 0,
                Description = chequesAndStatsVM.description,
                DocumentId  = document.ID,
                IsCredit    = true,
                IsDebit     = false,
                Date        = PersianDateUtils.ToDateTime(chequesAndStatsVM.date),
                DisplayDate = chequesAndStatsVM.date
            });


            document.Transactions = transactions;

            return(document);
        }
Beispiel #18
0
        public async Task <HttpResponseMessage> SaveCost([FromBody] CostVM costVM)
        {
            try
            {
                bool ShouldSend = false;

                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

                FinanYearRule finanYearRule = new FinanYearRule();
                var           finanYears    = await finanYearRule.GetAllByOrganIdAsync(organId);

                var finanYear = finanYears.Where(x => x.Closed == false && x.OrganId == organId);

                costVM.CostItems = costVM.CostItems.Where(x => x.Item != null && x.Sum > 0).ToList();
                foreach (var costItem in costVM.CostItems)
                {
                    if (costItem.Item != null)
                    {
                        costItem.ItemId = costItem.Item.ID;
                    }
                }
                Cost cost = new Cost();
                Mapper.Map(costVM, cost);


                cost.OrganId = organId;

                if (costVM.Contact != null)
                {
                    cost.ContactId = costVM.Contact.ID;//.DetailAccount.Node.Id;
                }
                cost.CostItems = cost.CostItems.Where(x => x.ItemId != 0 && x.Sum > 0).ToList();

                CostValidate validator = new CostValidate();
                FluentValidation.Results.ValidationResult results = validator.Validate(cost);

                string failurs = "";

                if (!results.IsValid)
                {
                    foreach (var error in results.Errors)
                    {
                        failurs += "<br/>" + error.ErrorMessage;
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.ValidationError, data = failurs }));
                }

                if (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager"))
                {
                    cost.Status = ZhivarEnums.CostStatus.WaitingToPay;
                }
                else if (costVM.Status == ZhivarEnums.CostStatus.WaitingToPay)
                {
                    ShouldSend = true;
                }
                else
                {
                    cost.Status = ZhivarEnums.CostStatus.Temporary;
                }

                //if (cost.Status == ZhivarEnums.CostStatus.WaitingToPay)
                //{
                //    var document = await Rule.RegisterDocument(costVM, organId);
                //    DocumentRule documentRule = new DocumentRule();
                //    await documentRule.InsertAsync(document, organId);
                //}

                if (cost.ID > 0)
                {
                    foreach (var costItem in cost.CostItems)
                    {
                        costItem.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        costItem.CostId      = cost.ID;
                    }

                    cost.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                }
                else
                {
                    foreach (var costItem in cost.CostItems)
                    {
                        costItem.ObjectState = OMF.Common.Enums.ObjectState.Added;
                    }

                    cost.ObjectState = OMF.Common.Enums.ObjectState.Added;
                }

                Rule.InsertOrUpdateGraph(cost);



                if (costVM.ID <= 0)
                {
                    if (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager"))
                    {
                        var document = await Rule.RegisterDocument(costVM, organId);

                        DocumentRule documentRule = new DocumentRule();
                        await documentRule.InsertAsync(document, organId);

                        await documentRule.SaveChangesAsync();

                        cost.DocumentId = document.ID;
                    }
                }

                await this.BusinessRule.UnitOfWork.SaveChangesAsync();

                if (ShouldSend)
                {
                    await StartWorkFlow(new WorkFlowBusiClass()
                    {
                        Code           = "Cost",
                        ID             = cost.ID,
                        OrganizationID = 22,
                        InstanceTitle  = cost.Explain
                    }, true);
                }

                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = cost }));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Beispiel #19
0
    /// ****************************************************************************
    /// <summary>
    /// 执行 sql 语句将查询结果帮定显示。


    /// </summary>
    /// ****************************************************************************
    private void LoadData1()
    {
        string     sql    = (string)this.ViewState["SqlString"];
        QueryAgent qa     = new QueryAgent();
        EntityData entity = qa.FillEntityData("WorkFlowAct", sql);

        qa.Dispose();



        //流程意见
        DataColumn Opinion = new DataColumn();

        Opinion.ColumnName   = "Opinion";
        Opinion.DefaultValue = "";
        Opinion.DataType     = System.Type.GetType("System.String");
        //流程同意否决项

        DataColumn Opinion1 = new DataColumn();

        Opinion1.ColumnName   = "OpinionConfirm";
        Opinion1.DefaultValue = "";
        Opinion1.DataType     = System.Type.GetType("System.String");
        //增加流程角色名

        DataColumn Opinion2 = new DataColumn();

        Opinion2.ColumnName   = "RoleName";
        Opinion2.DefaultValue = "";
        Opinion2.DataType     = System.Type.GetType("System.String");
        //结束
        DataColumn Opinion3 = new DataColumn();

        Opinion3.ColumnName   = "IsEnd";
        Opinion3.DefaultValue = "1";
        Opinion3.DataType     = System.Type.GetType("System.String");

        entity.CurrentTable.Columns.Add(Opinion);
        entity.CurrentTable.Columns.Add(Opinion1);
        entity.CurrentTable.Columns.Add(Opinion2);
        entity.CurrentTable.Columns.Add(Opinion3);
        WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());

        System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
        string TaskCode = "";

        if (this.ActCode != "" && !this.Scout)
        {
            Act act = workCase.GetAct(this.ActCode);
            TaskCode = act.ToTaskCode;
        }
        while (ie.MoveNext())
        {
            Opinion Flowopinion = (Opinion)ie.Value;
            foreach (DataRow dr in entity.CurrentTable.Rows)
            {
                //获取当前辅助控制的状态

                ModuleState moduleState = this.Toobar.GetModuleState(WorkFlowRule.GetTaskOpinionTypeByActCode(dr["ActCode"].ToString()));
                //加载意见标题项

                Procedure procedure = DefinitionManager.GetProcedureDifinition(dr["ProcedureCode"].ToString(), true);
                Task      task      = procedure.GetTask(dr["ToTaskCode"].ToString());
                string    IsCopy    = dr["Copy"].ToString();

                //判断是否为结束

                if (task.TaskType == 2)
                {
                    dr["IsEnd"] = "0";
                }

                if (task != null)
                {
                    if (dr["TaskActorID"].ToString() != "")
                    {
                        TaskActor taskActor = task.GetTaskActor(dr["TaskActorID"].ToString());
                        if (taskActor.OpinionType + "" != "")
                        {
                            dr["RoleName"] = taskActor.OpinionType + "意见";
                        }
                        else
                        {
                            Role role = procedure.GetRole(taskActor.ActorCode);
                            if (role != null)
                            {
                                dr["RoleName"] = role.RoleName + "意见";
                            }
                        }
                    }
                    else
                    {
                        if (task.OpinionType + "" != "")
                        {
                            dr["RoleName"] = task.OpinionType + "意见";
                        }
                        else
                        {
                            Role role = procedure.GetRole(task.TaskRole);
                            if (role != null)
                            {
                                dr["RoleName"] = role.RoleName + "意见";
                            }
                        }
                    }
                }

                if (dr["ActCode"].ToString() == Flowopinion.ApplicationCode)
                {
                    //加载同意否决项

                    this.LoadOpinionConfirm(dr["ApplicationSubject"].ToString(), dr);


                    //加载默认用户
                    this.LoadImgSign(moduleState, dr["ActUserCode"].ToString(), dr);

                    //当前状态为End时

                    if (dr["Status"].ToString() == "End")
                    {
                        Act tmpAct = workCase.GetAct(dr["ActCode"].ToString());

                        // 1为抄送并且公开;2为抄送发起人;3为抄送人自己;4为当前用户拥有监控权限 以上4种情况将允许意见的出现

                        if (!(tmpAct.Copy == 1 && tmpAct.IsSleep == 0) || (tmpAct.ToTaskCode == TaskCode && tmpAct.FromUserCode == this.UserCode && tmpAct.Copy == 1) || tmpAct.ActUserCode == this.UserCode || this.IsScoutPopedom)
                        {
                            if (moduleState != ModuleState.Sightless && moduleState != ModuleState.Other)
                            {
                                //获取意见项

                                if (Flowopinion.OpinionText.Length > 0)
                                {
                                    //dr["Opinion"] = "<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');\">" + Flowopinion.OpinionText.Substring(0, 50) + "...</a>";
                                    dr["Opinion"] = Flowopinion.OpinionText.Replace("\n", "<br>") + "&nbsp;&nbsp;";
                                    string tmpstr = DocumentRule.Instance().GetAttachListHtml("WorkFlowActOpinion", tmpAct.ActCode);
                                    if (tmpstr != "")
                                    {
                                        //dr["Opinion"] += " <img src=\"../Images/attach.gif\" style=\"border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none\" /></a><br>" + "附件:" + tmpstr;
                                        dr["Opinion"] += "<br>" + "附件:" + tmpstr;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        if (Request["Debug"] + "" == "1")
        {
            string    procedureCode = entity.GetString("ProcedureCode");
            Procedure procedure     = DefinitionManager.GetProcedureDifinition(procedureCode, true);

            /////////////////创建属性表///////////////////
            DataTable PropertyTable = RmsPM.BLL.WorkFlowRule.GetPropertyTable(workCase, procedure);

            this.DataGrid1.DataSource = entity;
            this.DataGrid1.DataBind();

            this.DataGrid2.DataSource = PropertyTable;
            this.DataGrid2.DataBind();
        }
        DataView dv;

        if (!((User)Session["user"]).HasOperationRight("090102"))
        {
            dv = new DataView(entity.CurrentTable, String.Format(" ActUserCode='{0}' or (FromUserCode='{0}' and Copy='1') or (Copy = '1' and IsSleep='1') or Copy='0'", UserCode), "", DataViewRowState.CurrentRows);
        }
        else
        {
            dv = new DataView(entity.CurrentTable);
        }
        this.DataGrid3.DataSource = dv;
        this.DataGrid3.DataBind();

        foreach (DataRow dr in entity.CurrentTable.Select())
        {
            Act tmpAct = workCase.GetAct(dr["ActCode"].ToString());
            if (dr["IsEnd"].ToString() == "0" || tmpAct.Copy == 1)
            {
                entity.CurrentTable.Rows.Remove(dr);
            }
        }
        this.DataGrid4.DataSource = entity.CurrentTable;
        this.DataGrid4.DataBind();

        if (dv.Count == 0)
        {
            this.Visible = false;
        }
        else
        {
            this.Visible = true;
            if (this.ActCode != "" && !this.Scout)
            {
                //Act act = workCase.GetAct(this.ActCode);
                //string TaskCode = act.ToTaskCode;
                for (int i = 0; i < DataGrid3.Items.Count; i++)
                {
                    //DataGrid3.Items[i].Cells[10].Text.Trim() == "ActCode" &&

                    if (DataGrid3.Items[i].Cells[11].Text.Trim() == TaskCode && DataGrid3.Items[i].Cells[12].Text.Trim() == this.UserCode && DataGrid3.Items[i].Cells[13].Text.Trim() == "1")
                    {
                        Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim());
                        ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Checked = (tmpact.IsSleep == 1);
                        ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = true;
                    }
                    else
                    {
                        ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = false;
                        Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim());
                        if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                        {
                            DataGrid3.Items[i].Cells[9].Text = "&nbsp;√";
                        }
                        else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                        {
                            DataGrid3.Items[i].Cells[9].Text = "&nbsp;x";
                        }
                    }
                }
            }
            if (this.Scout)
            {
                for (int i = 0; i < DataGrid3.Items.Count; i++)
                {
                    ((CheckBox)DataGrid3.Items[i].FindControl("chkopinionshow")).Visible = false;
                    Act tmpact = workCase.GetAct(DataGrid3.Items[i].Cells[10].Text.Trim());
                    if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                    {
                        DataGrid3.Items[i].Cells[9].Text = "&nbsp;√";
                    }
                    else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                    {
                        DataGrid3.Items[i].Cells[9].Text = "&nbsp;x";
                    }
                }
            }
        }
        entity.Dispose();
    }
Beispiel #20
0
    /// ****************************************************************************
    /// <summary>
    /// 执行 sql 语句将查询结果帮定显示。


    /// </summary>
    /// ****************************************************************************
    private void LoadData()
    {
        string     sql    = (string)this.ViewState["SqlString"];
        QueryAgent qa     = new QueryAgent();
        EntityData entity = qa.FillEntityData("WorkFlowAct", sql);

        qa.Dispose();


        DataColumn Opinion = new DataColumn();

        Opinion.ColumnName   = "Opinion";
        Opinion.DefaultValue = "";
        Opinion.DataType     = System.Type.GetType("System.String");
        entity.CurrentTable.Columns.Add(Opinion);

        WorkCase workCase = Rms.WorkFlow.WorkCaseManager.GetWorkCase(this.ViewState["_CaseCode"].ToString());

        System.Collections.IDictionaryEnumerator ie = workCase.GetOpinionEnumerator();
        string TaskCode = "";

        if (this.ActCode != "" && !this.Scout)
        {
            Act act = workCase.GetAct(this.ActCode);
            TaskCode = act.ToTaskCode;
        }
        while (ie.MoveNext())
        {
            Opinion Flowopinion = (Opinion)ie.Value;
            foreach (DataRow dr in entity.CurrentTable.Rows)
            {
                if (dr["ActCode"].ToString() == Flowopinion.ApplicationCode)
                {
                    if (dr["Status"].ToString() == "End")
                    {
                        Act tmpAct = workCase.GetAct(dr["ActCode"].ToString());
                        if (!(tmpAct.Copy == 1 && tmpAct.IsSleep == 0) || (tmpAct.ToTaskCode == TaskCode && tmpAct.FromUserCode == this.UserCode && tmpAct.Copy == 1) || tmpAct.ActUserCode == this.UserCode || this.IsScoutPopedom)
                        {
                            if (Flowopinion.OpinionText.Length > 0)
                            {
                                ModuleState moduleState = this.Toobar.GetModuleState(WorkFlowRule.GetTaskOpinionTypeByActCode(dr["ActCode"].ToString()));
                                if (moduleState != ModuleState.Sightless && moduleState != ModuleState.Other)
                                {
                                    //dr["Opinion"] = "<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');\">" + Flowopinion.OpinionText.Substring(0, 50) + "...</a>";
                                    dr["Opinion"] = Flowopinion.OpinionText.Replace("\n", "<br>") + "&nbsp;&nbsp;<a href=\"#\" OnClick=\"javascript:WorkFlowCaseStateOpenOpinionView('" + Flowopinion.OpinionCode + "');return false;\">[详细]";
                                    string tmpstr = DocumentRule.Instance().GetAttachListHtml("WorkFlowActOpinion", tmpAct.ActCode);
                                    if (tmpstr != "")
                                    {
                                        //dr["Opinion"] += " <img src=\"../Images/attach.gif\" style=\"border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none\" /></a><br>" + "附件:" + tmpstr;
                                        dr["Opinion"] += "</a><br>" + "附件:" + tmpstr;
                                    }
                                    else
                                    {
                                        dr["Opinion"] += "</a>";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        if (Request["Debug"] + "" == "1")
        {
            string    procedureCode = entity.GetString("ProcedureCode");
            Procedure procedure     = DefinitionManager.GetProcedureDifinition(procedureCode, true);

            /////////////////创建属性表///////////////////
            DataTable PropertyTable = RmsPM.BLL.WorkFlowRule.GetPropertyTable(workCase, procedure);

            this.DataGrid1.DataSource = entity;
            this.DataGrid1.DataBind();

            this.DataGrid2.DataSource = PropertyTable;
            this.DataGrid2.DataBind();
        }
        DataView dv;

        if (!((User)Session["user"]).HasOperationRight("090102"))
        {
            dv = new DataView(entity.CurrentTable, String.Format(" ActUserCode='{0}' or (FromUserCode='{0}' and Copy='1') or (Copy = '1' and IsSleep='1') or Copy='0'", UserCode), "", DataViewRowState.CurrentRows);
        }
        else
        {
            dv = new DataView(entity.CurrentTable);
        }
        this.dgList.DataSource = dv;
        this.dgList.DataBind();

        if (dv.Count == 0)
        {
            this.Visible = false;
        }
        else
        {
            this.Visible = true;
            if (this.ActCode != "" && !this.Scout)
            {
                //Act act = workCase.GetAct(this.ActCode);
                //string TaskCode = act.ToTaskCode;
                for (int i = 0; i < dgList.Items.Count; i++)
                {
                    //dgList.Items[i].Cells[10].Text.Trim() == "ActCode" &&
                    if (dgList.Items[i].Cells[8].Text.Trim() == TaskCode && dgList.Items[i].Cells[9].Text.Trim() == this.UserCode && dgList.Items[i].Cells[10].Text.Trim() == "1")
                    {
                        Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Checked = (tmpact.IsSleep == 1);
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = true;
                    }
                    else
                    {
                        ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = false;
                        Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                        if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                        {
                            dgList.Items[i].Cells[6].Text = "&nbsp;公开";
                        }
                        else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                        {
                            dgList.Items[i].Cells[6].Text = "&nbsp;未公开";
                        }
                    }
                }
            }
            if (this.Scout)
            {
                for (int i = 0; i < dgList.Items.Count; i++)
                {
                    ((CheckBox)dgList.Items[i].FindControl("chkopinionshow")).Visible = false;
                    Act tmpact = workCase.GetAct(dgList.Items[i].Cells[7].Text.Trim());
                    if (tmpact.IsSleep == 1 && tmpact.Copy == 1)
                    {
                        dgList.Items[i].Cells[6].Text = "&nbsp;公开";
                    }
                    else if (tmpact.IsSleep == 0 && tmpact.Copy == 1)
                    {
                        dgList.Items[i].Cells[6].Text = "&nbsp;未公开";
                    }
                }
            }
        }
        entity.Dispose();
    }
Beispiel #21
0
        public async Task <List <string> > SaveContract(ContractVM contractVM)
        {
            try
            {
                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

                FinanYearRule finanYearRule = new FinanYearRule();
                var           finanYears    = await finanYearRule.GetAllByOrganIdAsync(organId);

                var finanYear = finanYears.Where(x => x.Closed == false && x.OrganId == organId);

                contractVM.Contract_Sazes = contractVM.Contract_Sazes.Where(x => x.Saze != null).ToList();

                foreach (var contract_Saze in contractVM.Contract_Sazes)
                {
                    if (contract_Saze.Saze != null)
                    {
                        contract_Saze.SazeId = contract_Saze.Saze.ID;
                    }

                    if (contract_Saze.NoeEjare != null)
                    {
                        contract_Saze.NoeEjareId = contract_Saze.NoeEjare.ID;
                    }

                    if (contract_Saze.DisplayTarikhShorou != null)
                    {
                        contract_Saze.TarikhShorou = PersianDateUtils.ToDateTime(contract_Saze.DisplayTarikhShorou);



                        if (contract_Saze.NoeEjareId == 1)
                        {
                            contract_Saze.TarikhPayan = contract_Saze.TarikhShorou.AddDays((double)contract_Saze.Quantity);
                        }
                        else if (contract_Saze.NoeEjareId == 2)
                        {
                            PersianCalendar pc = new PersianCalendar();
                            contract_Saze.TarikhPayan        = pc.AddMonths(contract_Saze.TarikhShorou, (int)contract_Saze.Quantity);
                            contract_Saze.DisplayTarikhPayan = PersianDateUtils.ToPersianDate(contract_Saze.TarikhPayan);
                        }
                    }
                }

                if (contractVM.Contact != null)
                {
                    contractVM.ContactId = contractVM.Contact.ID;
                }

                DomainClasses.Contract.Contract contract = new DomainClasses.Contract.Contract();
                Mapper.Map(contractVM, contract);
                contract.OrganId  = organId;
                contract.DateTime = PersianDateUtils.ToDateTime(contract.DisplayDate);


                ContractValidate validator = new ContractValidate();
                FluentValidation.Results.ValidationResult results = validator.Validate(contract);

                List <string> failurs = new List <string>();;

                if (!results.IsValid)
                {
                    foreach (var error in results.Errors)
                    {
                        failurs.Add(error.ErrorMessage);
                    }
                    return(failurs);
                }

                //  contract = savePaymentForContract(contract, contractVM);
                if (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager") &&
                    contractVM.ContractType == ContractType.RentFrom)
                {
                    contract.Status = Status.ConfirmationContract;
                }
                else if (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager") &&
                         contractVM.ContractType == ContractType.PreContract)
                {
                    contract.Status = Status.ConfirmationPreContract;

                    contract.ContractType = ContractType.RentTo;

                    // contract.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;
                    }
                }
                else if (contractVM.ContractType == ContractType.PreContract && contractVM.Status == Status.SendPreContract)
                {
                    //nothing
                }
                else
                {
                    contract.Status = Status.Temporary;
                }

                if (contract.ID > 0)
                {
                    foreach (var contractSaze in contract.Contract_Sazes)
                    {
                        contractSaze.TarikhShorou = PersianDateUtils.ToDateTime(contractSaze.DisplayTarikhShorou);
                        contractSaze.ContractID   = contract.ID;

                        if (contractSaze.ID > 0)
                        {
                            contractSaze.ContractID  = contract.ID;
                            contractSaze.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        }

                        else
                        {
                            contractSaze.ContractID  = contract.ID;
                            contractSaze.ObjectState = OMF.Common.Enums.ObjectState.Added;
                        }


                        foreach (var contarct_Saze_Bazareab in contractSaze.Contarct_Saze_Bazareabs)
                        {
                            contractSaze.HasBazareab = true;
                            if (contarct_Saze_Bazareab.ID > 0)
                            {
                                contarct_Saze_Bazareab.ContarctSazeID = contractSaze.ID;
                                contarct_Saze_Bazareab.ObjectState    = ObjectState.Modified;
                            }
                            else
                            {
                                contarct_Saze_Bazareab.ContarctSazeID = contractSaze.ID;
                                contarct_Saze_Bazareab.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Tarah in contractSaze.Contract_Saze_Tarahs)
                        {
                            contractSaze.HasTarah = true;

                            if (contract_Saze_Tarah.ID > 0)
                            {
                                contract_Saze_Tarah.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Tarah.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Tarah.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Tarah.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Chapkhane in contractSaze.Contract_Saze_Chapkhanes)
                        {
                            contractSaze.HasChap = true;

                            if (contract_Saze_Chapkhane.ID > 0)
                            {
                                contract_Saze_Chapkhane.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Chapkhane.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Chapkhane.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Chapkhane.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Nasab in contractSaze.Contract_Saze_Nasabs)
                        {
                            contractSaze.HasNasab = true;
                            if (contract_Saze_Nasab.ID > 0)
                            {
                                contract_Saze_Nasab.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Nasab.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Nasab.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Nasab.ObjectState    = ObjectState.Added;
                            }
                        }
                    }


                    foreach (var contract_PayRecevie in contract.Contract_PayRecevies)
                    {
                        if (contract_PayRecevie.ID > 0)
                        {
                            contract_PayRecevie.ContractId  = contract.ID;
                            contract_PayRecevie.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        }

                        else
                        {
                            contract_PayRecevie.ContractId = contract.ID;
                            contract_PayRecevie.IsReceive  = true;
                            contract_PayRecevie.OrganId    = organId;
                            contract_PayRecevie.Status     = Status.Temporary;
                            contract_PayRecevie.Type       = PayRecevieType.Sir;
                            contract_PayRecevie.Date       = DateTime.Now;

                            contract_PayRecevie.ContactId   = contract.ID;
                            contract_PayRecevie.ObjectState = OMF.Common.Enums.ObjectState.Added;
                        }


                        foreach (var contract_DetailPayRecevie in contract_PayRecevie.Contract_DetailPayRecevies)
                        {
                            if (contract_DetailPayRecevie.ID > 0)
                            {
                                contract_DetailPayRecevie.Contract_PayRecevieId = contract_PayRecevie.ID;
                                contract_DetailPayRecevie.ObjectState           = ObjectState.Modified;
                            }
                            else
                            {
                                contract_DetailPayRecevie.Contract_PayRecevieId = contract_PayRecevie.ID;
                                contract_DetailPayRecevie.ObjectState           = ObjectState.Added;
                            }
                        }
                    }
                    contract.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                }

                else
                {
                    foreach (var contractSaze in contract.Contract_Sazes)
                    {
                        contractSaze.ContractID   = contract.ID;
                        contractSaze.TarikhShorou = PersianDateUtils.ToDateTime(contractSaze.DisplayTarikhShorou);

                        if (contractSaze.ID > 0)
                        {
                            contractSaze.ContractID  = contract.ID;
                            contractSaze.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                        }

                        else
                        {
                            contractSaze.ContractID  = contract.ID;
                            contractSaze.ObjectState = OMF.Common.Enums.ObjectState.Added;
                        }


                        foreach (var contarct_Saze_Bazareab in contractSaze.Contarct_Saze_Bazareabs)
                        {
                            contractSaze.HasBazareab = true;

                            if (contarct_Saze_Bazareab.NoeMozdBazryab == NoeMozd.Month)
                            {
                                contarct_Saze_Bazareab.Hazine = 0;
                            }

                            if (contarct_Saze_Bazareab.ID > 0)
                            {
                                contarct_Saze_Bazareab.ContarctSazeID = contractSaze.ID;
                                contarct_Saze_Bazareab.ObjectState    = ObjectState.Modified;
                            }
                            else
                            {
                                contarct_Saze_Bazareab.ContarctSazeID = contractSaze.ID;
                                contarct_Saze_Bazareab.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Tarah in contractSaze.Contract_Saze_Tarahs)
                        {
                            contractSaze.HasTarah = true;

                            if (contract_Saze_Tarah.NoeMozdTarah == NoeMozd.Month)
                            {
                                contract_Saze_Tarah.Hazine = 0;
                            }

                            if (contract_Saze_Tarah.ID > 0)
                            {
                                contract_Saze_Tarah.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Tarah.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Tarah.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Tarah.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Chapkhane in contractSaze.Contract_Saze_Chapkhanes)
                        {
                            contractSaze.HasChap = true;



                            if (contract_Saze_Chapkhane.ID > 0)
                            {
                                contract_Saze_Chapkhane.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Chapkhane.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Chapkhane.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Chapkhane.ObjectState    = ObjectState.Added;
                            }
                        }

                        foreach (var contract_Saze_Nasab in contractSaze.Contract_Saze_Nasabs)
                        {
                            contractSaze.HasNasab = true;

                            if (contract_Saze_Nasab.NoeMozdNasab == NoeMozd.Month)
                            {
                                contract_Saze_Nasab.Hazine = 0;
                            }

                            if (contract_Saze_Nasab.ID > 0)
                            {
                                contract_Saze_Nasab.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Nasab.ObjectState    = ObjectState.Modified;
                            }

                            else
                            {
                                contract_Saze_Nasab.ContarctSazeID = contractSaze.ID;
                                contract_Saze_Nasab.ObjectState    = ObjectState.Added;
                            }
                        }
                    }

                    if (contract.Contract_PayRecevies != null && contract.Contract_PayRecevies.Count() > 0 &&
                        contract.Contract_PayRecevies[0].Contract_DetailPayRecevies != null && contract.Contract_PayRecevies[0].Contract_DetailPayRecevies.Count() > 0)
                    {
                        foreach (var contract_PayRecevie in contract.Contract_PayRecevies)
                        {
                            contract_PayRecevie.ContractId = contract.ID;
                            contract_PayRecevie.Date       = DateTime.Now;
                            contract_PayRecevie.IsReceive  = true;


                            if (contract_PayRecevie.ID > 0)
                            {
                                contract_PayRecevie.ContractId  = contract.ID;
                                contract_PayRecevie.ObjectState = OMF.Common.Enums.ObjectState.Modified;
                            }

                            else
                            {
                                contract_PayRecevie.ContractId  = contract.ID;
                                contract_PayRecevie.ObjectState = OMF.Common.Enums.ObjectState.Added;
                            }


                            foreach (var contract_DetailPayRecevie in contract_PayRecevie.Contract_DetailPayRecevies)
                            {
                                if (contract_DetailPayRecevie.ID > 0)
                                {
                                    contract_DetailPayRecevie.Contract_PayRecevieId = contract_PayRecevie.ID;
                                    contract_DetailPayRecevie.ObjectState           = ObjectState.Modified;
                                }
                                else
                                {
                                    contract_DetailPayRecevie.Contract_PayRecevieId = contract_PayRecevie.ID;
                                    contract_DetailPayRecevie.ObjectState           = ObjectState.Added;
                                }
                            }
                        }
                    }
                    else
                    {
                        contract.Contract_PayRecevies = null;
                    }
                    contract.ObjectState = OMF.Common.Enums.ObjectState.Added;
                }


                this.UnitOfWork.RepositoryAsync <DomainClasses.Contract.Contract>().InsertOrUpdateGraph(contract);



                //  ContactRule contactRule = new ContactRule();
                //   await contactRule.UpdateContact(invoice.InvoiceType, invoice.ContactId);



                await this.UnitOfWork.SaveChangesAsync();

                if (contractVM.ID <= 0)
                {
                    if ((SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager") &&
                         contractVM.ContractType == ContractType.PreContract) || (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager") &&
                                                                                  contractVM.Status == Status.ConfirmationContract))
                    {
                        InvoiceRule invoiceRule = new InvoiceRule();
                        var         invoice     = invoiceRule.ConvertContractToInvoice(contract.ID, NoeFactor.RentTo);

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

                        DocumentRule documentRule = new DocumentRule();
                        await documentRule.InsertAsync(document, invoice.OrganId);

                        await documentRule.SaveChangesAsync();

                        invoice.DocumentID = document.ID;
                        invoiceRule.Update(invoice);
                        await invoiceRule.SaveChangesAsync();
                    }
                    else if (SecurityManager.CurrentUserContext.Roles.Any(x => x.RoleCode == "Manager") &&
                             contractVM.ContractType == ContractType.RentTo)
                    {
                        InvoiceRule invoiceRule = new InvoiceRule();
                        invoiceRule.ConvertContractToInvoice(contract.ID, NoeFactor.RentFrom);
                    }
                }



                return(failurs);
            }
            catch (Exception ex)
            {
                var p = ex;
                throw;
            }
        }
Beispiel #22
0
        private void InitPage()
        {
            string AttachMentCode = Request.QueryString["AttachMentCode"] + "";
            string Action         = Request.QueryString["Action"] + "";

            string AttachMent = Request.QueryString["AttachMent"] + "";

            DocumentRule documentRule = DocumentRule.Instance();

            if (Action.ToLower() == "view")
            {
                new ViewAttachment().OutputAttachment(Response, AttachMentCode, AttachMent, documentRule);
            }
            if (Action.ToLower() == "del")
            {
                try
                {
                    documentRule.DeleteAttachment(AttachMentCode);
                }
                catch (Exception ex)
                {
                    Rms.LogHelper.LogHelper.Error("删除附件时异常", ex);
                }
                Response.Write(JavaScript.ScriptStart);
                Response.Write("window.opener.AttachMentRefresh();");
                Response.Write("window.close();");
                Response.Write(JavaScript.ScriptEnd);
            }

            /*
             * EntityData entityAttachMent = DAL.EntityDAO.AttachmentDAO.GetAttachMentByCode(AttachMentCode);
             *          if(Action=="View")
             *          {
             *                  DataRow dr = entityAttachMent.CurrentRow;
             *
             *                  if (dr["Content"].ToString() == "" || dr["Content"] == null)
             *                  {
             *                          this.lblMessage.Text = "该附件无内容";
             *                          return;
             *                  }
             *
             *                  if (dr["Content_Type"].ToString() == "" || dr["Content_Type"] == null)
             *                  {
             *                          this.lblMessage.Text = "未定义附件的显示方式";
             *                          return;
             *                  }
             *
             *                  string filename = "";
             *
             *                  if (dr["filename"] != null)
             *                  {
             *                          filename = dr["filename"].ToString();
             *                  }
             *                  entityAttachMent.Dispose();
             *                  Response.ContentType = dr["Content_Type"].ToString();
             *  switch (AttachMent)
             *  {
             *      case "0":
             *          break;
             *      case "1":
             *          Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filename));
             *          break;
             *      default:
             *          //Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(filename));
             *          Response.AppendHeader("Content-Disposition", "filename=" + Server.UrlEncode(filename));
             *          break;
             *
             *  }
             *                  Response.BinaryWrite((byte[]) dr["Content"]);
             *                  Response.End();
             *          }*/
        }