public PUInvoiceResponse DeletePUInvoice(string refId, int refType) { var pUInvoiceResponse = new PUInvoiceResponse { Acknowledge = AcknowledgeType.Success }; using (var scope = new TransactionScope()) { #region Delete pUInvoiceResponse.Message = PUInvoiceDao.DeletePUInvoice(refId); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } pUInvoiceResponse.Message = PUInvoiceDetailFixedAssetDao.DeletePUInvoiceDetailFixedAssets(refId); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteGeneralLedger(refId), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteOriginalLedger(refId), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteFixAssetLedger(refId, refType), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } #endregion #region Error Error: if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { pUInvoiceResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(pUInvoiceResponse); } pUInvoiceResponse.RefId = refId; scope.Complete(); #endregion } return(pUInvoiceResponse); }
public PUInvoiceResponse UpdatePUInvoice(PUInvoiceEntity pUInvoice) { var pUInvoiceResponse = new PUInvoiceResponse { Acknowledge = AcknowledgeType.Success }; if (pUInvoice != null && !pUInvoice.Validate()) { foreach (var error in pUInvoice.ValidationErrors) { pUInvoiceResponse.Message += error + Environment.NewLine; } pUInvoiceResponse.Acknowledge = AcknowledgeType.Failure; return(pUInvoiceResponse); } using (var scope = new TransactionScope()) { if (pUInvoice != null) { #region Master var pUInvoiceByRefNo = PUInvoiceDao.GetPUInvoiceByRefNo(pUInvoice.RefNo, pUInvoice.PostedDate); if (pUInvoiceByRefNo != null && !pUInvoiceByRefNo.RefId.Equals(pUInvoice.RefId) && pUInvoiceByRefNo.PostedDate.Year == pUInvoice.PostedDate.Year) { pUInvoiceResponse.Acknowledge = AcknowledgeType.Failure; pUInvoiceResponse.Message = string.Format("Số chứng từ \'{0}\' đã tồn tại!", pUInvoice.RefNo); return(pUInvoiceResponse); } if (string.IsNullOrEmpty(pUInvoice.RefId)) { pUInvoice.RefId = Guid.NewGuid().ToString(); } else { // Xóa detail pUInvoiceResponse.Message = PUInvoiceDetailFixedAssetDao.DeletePUInvoiceDetailFixedAssets(pUInvoice.RefId); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteGeneralLedger(pUInvoice.RefId), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteOriginalLedger(pUInvoice.RefId), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } AutoMapper(DeleteFixAssetLedger(pUInvoice.RefId, pUInvoice.RefType), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } } pUInvoiceResponse.Message = PUInvoiceDao.UpdatePUInvoice(pUInvoice); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } #endregion #region Detail if (pUInvoice.PUInvoiceDetailFixedAssets != null && pUInvoice.PUInvoiceDetailFixedAssets.Count > 0) { foreach (PUInvoiceDetailFixedAssetEntity entity in pUInvoice.PUInvoiceDetailFixedAssets) { entity.RefDetailId = Guid.NewGuid().ToString(); entity.RefId = pUInvoice.RefId; pUInvoiceResponse.Message = PUInvoiceDetailFixedAssetDao.UpdatePUInvoiceDetailFixedAsset(entity); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } #region General Ledger AutoMapper(InsertGeneralLedger(entity, pUInvoice), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } #endregion #region Original Ledger AutoMapper(InsertOriginalLedger(entity, pUInvoice), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } #endregion #region FixedAsset Ledger if (entity.DebitAccount.StartsWith("21")) { AutoMapper(InsertFixAssetLedger(entity, pUInvoice), pUInvoiceResponse); if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { goto Error; } } #endregion } } #endregion #region Error Error: if (!string.IsNullOrEmpty(pUInvoiceResponse.Message)) { pUInvoiceResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(pUInvoiceResponse); } pUInvoiceResponse.RefId = pUInvoice.RefId; scope.Complete(); #endregion } return(pUInvoiceResponse); } }