コード例 #1
0
        public static void Update(RemittanceModel remittanceModel)
        {
            var savedDetail = getRemittanceByRemitNo(remittanceModel.RemitNo);

            if (savedDetail.Count() > remittanceModel.Remittances.Count())
            {
                var tobeDeleted = savedDetail.Take(savedDetail.Count() - remittanceModel.Remittances.Count());
                foreach (var item in tobeDeleted)
                {
                    ////Change status to 'Confirm' of the receipt to be deleted.
                    ReceiptViewModel receipt = ReceiptHelper.GetReceipt(item.ReceiptId.ToString());
                    receipt.Status = "Confirm";
                    ReceiptHelper.SaveReceipt(receipt);

                    ////Delete receipt to be remitted.
                    service.DeleteRemittanceDetail(item.Id.ToString(), AuthenticationHelper.CompanyId.Value);
                }
                savedDetail = getRemittanceByRemitNo(remittanceModel.RemitNo);
            }

            foreach (var detail in remittanceModel.Remittances)
            {
                detail.RemitDate     = remittanceModel.RemitDate;
                detail.RemitNo       = remittanceModel.RemitNo;
                detail.SOBId         = remittanceModel.SOBId;
                detail.BankId        = remittanceModel.BankId;
                detail.BankAccountId = remittanceModel.BankAccountId;

                Remittance entity = getEntityByModel(detail, savedDetail.Count());
                if (entity.IsValid())
                {
                    if (savedDetail.Count() > 0)
                    {
                        entity.Id = savedDetail.FirstOrDefault().Id;
                        savedDetail.Remove(savedDetail.FirstOrDefault(rec => rec.Id == entity.Id));
                        service.Update(entity);
                    }
                    else
                    {
                        service.Insert(entity);
                    }
                }

                ////Change status to Remit of the receipt.
                ReceiptViewModel receipt = ReceiptHelper.GetReceipt(detail.ReceiptId.ToString());
                receipt.Status = "Remit";
                ReceiptHelper.SaveReceipt(receipt);
            }
        }