public HttpResponseMessage insertTransaction(long SourceAccount, long destinationAccount, int amt, string type, string comment) { int userId = getCustomerId(SourceAccount); DateTime date = DateTime.Now; transactionDetail transactionInsert = new transactionDetail { sourceAccountNumber = SourceAccount, destinationAccountNumber = destinationAccount, transactionDate = date, transactionAmount = amt, transactionType = type, comments = comment, transactionAuthorizedBy = userId }; dbContext.transactionDetails.Add(transactionInsert); dbContext.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); }
public IHttpActionResult ProcessTransaction(TransactionViewModel transaction) { try { using (DB_FleetServiceEntities db = new DB_FleetServiceEntities()) { var rta = new ResponseApiViewModel(); var consecutive = 0; decimal valueWithoutDscount = Convert.ToDecimal(string.Format("{0:F2}", transaction.valueWithoutDiscount)); decimal discountValue = Convert.ToDecimal(string.Format("{0:F2}", transaction.discountValue)); decimal taxesValue = Convert.ToDecimal(string.Format("{0:F2}", transaction.taxesValue)); decimal valueWithDiscountWithoutTaxes = Convert.ToDecimal(string.Format("{0:F2}", transaction.valueWithDiscountWithoutTaxes)); decimal valueTRX = Convert.ToDecimal(string.Format("{0:F2}", transaction.value)); consecutive = db.STRPRC_PROCESS_TRANSACTION_V2( transaction.client.id, transaction.movement.id, valueWithoutDscount, discountValue, valueWithDiscountWithoutTaxes, taxesValue, valueTRX, (transaction.transactionState != null) ? transaction.transactionState.id : null, transaction.usu_id ); if (consecutive > 0) { var trx_tmp = db.transactions.Where(trx => trx.cli_id == transaction.client.id && trx.m_id == transaction.movement.id) .OrderByDescending(trx => trx.trx_registrationDate).FirstOrDefault(); if (trx_tmp != null) { var trx_id = trx_tmp.trx_id; transaction.id = trx_id; rta.response = true; rta.message = "Se ha procesado la: " + transaction.movement.name.ToLower() + " correctamente"; if (transaction.headerDetails != null) { transactionDetail trxDetail = new transactionDetail(); trxDetail.trx_id = trx_id; trxDetail.trx_relation_id = (transaction.headerDetails.relatedTransaction != null) ? transaction.headerDetails.relatedTransaction.id : null; if (transaction.headerDetails.vehicle != null) { VehicleController vehController = new VehicleController(); vehController.Update(transaction.headerDetails.vehicle); } trxDetail.veh_id = (transaction.headerDetails.vehicle != null) ? transaction.headerDetails.vehicle.id : null; trxDetail.deal_id = (transaction.headerDetails.dealer != null) ? transaction.headerDetails.dealer.id : null; trxDetail.bra_id = (transaction.headerDetails.branch != null) ? transaction.headerDetails.branch.id : null; trxDetail.mr_id = (transaction.headerDetails.maintenanceRoutine != null) ? transaction.headerDetails.maintenanceRoutine.id : null; trxDetail.cntr_id = (transaction.headerDetails.contract != null) ? transaction.headerDetails.contract.id : null; if (transaction.movement.id == (int)EnumMovement.APROBACION_ORDEN_DE_TRABAJO) { var trxRelated = db.transactions.Where(tr => tr.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelated.trxst_id = (int)EnumTransactionState.APROBADA; var trxRelatedDetail = db.transactionDetail.Where(trx => trx.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelatedDetail.usu_approbation = transaction.usu_id; trxRelatedDetail.trx_approbationDate = DateTime.Now; } if (transaction.movement.id == (int)EnumMovement.CANCELACION_ORDEN_DE_TRABAJO) { var trxRelated = db.transactions.Where(tr => tr.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelated.trxst_id = (int)EnumTransactionState.RECHAZADA; var trxRelatedDetail = db.transactionDetail.Where(trx => trx.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelatedDetail.usu_reject = transaction.usu_id; trxRelatedDetail.trx_rejectDate = DateTime.Now; } if (transaction.movement.id == (int)EnumMovement.FINALIZACION_ORDEN_DE_TRABAJO) { var trxRelated = db.transactions.Where(tr => tr.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelated.trxst_id = (int)EnumTransactionState.FINALIZADA; var trxRelatedDetail = db.transactionDetail.Where(trx => trx.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelatedDetail.usu_ending = transaction.usu_id; trxRelatedDetail.trx_endingDate = DateTime.Now; } if (transaction.movement.id == (int)EnumMovement.ANULACION_ORDEN_DE_TRABAJO) { var trxRelated = db.transactions.Where(tr => tr.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelated.trxst_id = (int)EnumTransactionState.ANULADA; var trxRelatedDetail = db.transactionDetail.Where(trx => trx.trx_id == trxDetail.trx_relation_id).FirstOrDefault(); trxRelatedDetail.usu_anulation = transaction.usu_id; trxRelatedDetail.trx_anulationDate = DateTime.Now; } db.transactionDetail.Add(trxDetail); db.SaveChanges(); } if (transaction.lsItems != null) { if (transaction.lsItems.Count > 0) { foreach (var item in transaction.lsItems) { var taxValue = (item.taxesValue != null) ? item.taxesValue : 0; transactionItems oItemDB = new transactionItems(); oItemDB.trx_id = trx_id; oItemDB.mi_id = item.id; oItemDB.mi_amount = item.amount; oItemDB.mi_referencePrice = item.referencePrice; oItemDB.mi_valueWithoutDiscount = item.valueWithoutDiscount; oItemDB.mi_discountValue = item.discountValue; oItemDB.mi_valueWithDiscountWithoutTaxes = item.valueWithDiscountWithoutTaxes; oItemDB.mi_totalPrice = item.valueWithDiscountWithoutTaxes + taxValue; oItemDB.mi_taxesValue = taxValue; db.transactionItems.Add(oItemDB); db.SaveChanges(); } } } if (transaction.lsObservations != null) { if (transaction.lsObservations.Count > 0) { foreach (var observation in transaction.lsObservations) { observationsByTransaction observationDb = new observationsByTransaction(); observationDb.trx_id = trx_id; observationDb.obstrx_description = observation.description; observationDb.usr_id = transaction.usu_id; observationDb.obstrx_registrationDate = DateTime.Now; db.observationsByTransaction.Add(observationDb); db.SaveChanges(); } } } } } return(Ok(rta)); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }