示例#1
0
文件: Helpers.cs 项目: kvv842/TestOtc
        /// <summary>
        /// Расчет комиссии банка
        /// </summary>
        /// <param name="senderBank"></param>
        /// <param name="senderInvoice"></param>
        /// <param name="recipientInvoice"></param>
        /// <param name="ammount"></param>
        /// <returns></returns>
        public static decimal CalcBankInterested(DbBank senderBank, DbInvoice senderInvoice, DbInvoice recipientInvoice, decimal ammount)
        {
            var percent = (IsInternalTransfer(senderInvoice, recipientInvoice))
                          ? senderBank.InterestInternalTransfer
                          : senderBank.InterestExternalTransfer;

            return(CalcPercent(ammount, percent));
        }
示例#2
0
        private int SaveOrUpdateInvoiceInDb(Invoice invoice)
        {
            if (String.IsNullOrEmpty(invoice.Number) ||
                invoice.IssueDate == DateTime.MinValue ||
                invoice.ContactID <= 0 ||
                invoice.DueDate == DateTime.MinValue ||
                String.IsNullOrEmpty(invoice.Currency) ||
                invoice.ExchangeRate <= 0 ||
                String.IsNullOrEmpty(invoice.Terms))
            {
                throw new ArgumentException();
            }

            var dbEntity = new DbInvoice
            {
                Id                  = invoice.ID,
                Status              = invoice.Status,
                Number              = invoice.Number,
                IssueDate           = _tenantUtil.DateTimeToUtc(invoice.IssueDate),
                TemplateType        = invoice.TemplateType,
                ContactId           = invoice.ContactID,
                ConsigneeId         = invoice.ConsigneeID,
                EntityType          = invoice.EntityType,
                EntityId            = invoice.EntityID,
                DueDate             = _tenantUtil.DateTimeToUtc(invoice.DueDate),
                Language            = invoice.Language,
                Currency            = invoice.Currency,
                ExchangeRate        = invoice.ExchangeRate,
                PurchaseOrderNumber = invoice.PurchaseOrderNumber,
                Terms               = invoice.Terms,
                Description         = invoice.Description,
                JsonData            = invoice.JsonData,
                FileId              = invoice.FileID,
                CreateOn            = invoice.CreateOn == DateTime.MinValue ? DateTime.UtcNow : invoice.CreateOn,
                CreateBy            = _securityContext.CurrentAccount.ID,
                LastModifedOn       = DateTime.UtcNow,
                LastModifedBy       = _securityContext.CurrentAccount.ID,
                TenantId            = TenantID
            };

            dbEntity.PurchaseOrderNumber = !String.IsNullOrEmpty(invoice.PurchaseOrderNumber) ? invoice.PurchaseOrderNumber : String.Empty;

            CrmDbContext.Update(dbEntity);
            CrmDbContext.SaveChanges();

            return(dbEntity.Id);
        }
示例#3
0
文件: Helpers.cs 项目: kvv842/TestOtc
 /// <summary>
 /// Внутренний ли перевод
 /// </summary>
 /// <param name="senderInvoice"></param>
 /// <param name="recipientInvoice"></param>
 /// <returns></returns>
 public static bool IsInternalTransfer(DbInvoice senderInvoice, DbInvoice recipientInvoice)
 => senderInvoice.BankId == recipientInvoice.BankId;