public async Task <IHttpActionResult> PutTipoOrigen(int id, TipoOrigen tipoOrigen) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != tipoOrigen.IdTipoOrigen) { return(BadRequest()); } db.Entry(tipoOrigen).State = EntityState.Modified; try { await db.SaveChangesAsync(); return(StatusCode(HttpStatusCode.NoContent)); } catch (DbUpdateConcurrencyException) { if (!TipoOrigenExists(id)) { return(NotFound()); } else { throw; } } }
public static TipoOrigen RetornaTipoReceptor(QuickReceptorModel Prestador) { var ReturnValues = new TipoOrigen(); if (Prestador != null && Prestador.tipoReceptor == "PR") { ReturnValues = TipoOrigen.Compra; } else if (Prestador != null && Prestador.tipoReceptor == "CL") { ReturnValues = TipoOrigen.Venta; } else if (Prestador != null && Prestador.tipoReceptor == "P") { ReturnValues = TipoOrigen.Remuneraciones; } else if (Prestador != null && Prestador.tipoReceptor == "H") { ReturnValues = TipoOrigen.Honorario; } else { ReturnValues = TipoOrigen.Otros; } return(ReturnValues); }
public async Task <IHttpActionResult> GetTipoOrigen(int id) { TipoOrigen tipoOrigen = await db.TipoOrigen.FindAsync(id); if (tipoOrigen == null) { return(NotFound()); } return(Ok(tipoOrigen)); }
public async Task <IHttpActionResult> PostTipoOrigen(TipoOrigen tipoOrigen) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.TipoOrigen.Add(tipoOrigen); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = tipoOrigen.IdTipoOrigen }, tipoOrigen)); }
public async Task <IHttpActionResult> DeleteTipoOrigen(int id) { TipoOrigen tipoOrigen = await db.TipoOrigen.FindAsync(id); if (tipoOrigen == null) { return(NotFound()); } db.TipoOrigen.Remove(tipoOrigen); await db.SaveChangesAsync(); return(Ok(tipoOrigen)); }
//Queda pendiente crear este mismo metodo pero generico para reutilizar. //public static List<ObjCartolaYVouchers> ConvertirAObjetoCartola(HttpPostedFileBase file) //{ // List<ObjCartolaYVouchers> ReturnValues = new List<ObjCartolaYVouchers>(); // if (file == null || file.ContentLength == 0) // { // string Error = "Error Excel Vacio"; // } // else // { // if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx")) // { // string path = ParseExtensions.Get_Temp_path(file.FileName); // Le indicamos la ruta donde guardará el excel. // if (File.Exists(path)) // { // File.Delete(path); //Si ya existe lo elimina. // } // file.SaveAs(path); //Guardamos momentaneamente el fichero. -> La idea es extraer su información y luego eliminarlo. // Application application = new Application(); // Workbook workBook = application.Workbooks.Open(path); // Worksheet worksheet = workBook.ActiveSheet; // Range range = worksheet.UsedRange; // for (int row = 2; row <= range.Rows.Count; row++) // { // ObjCartolaYVouchers FilaAGuardar = new ObjCartolaYVouchers(); // FilaAGuardar.Fecha = ParseExtensions.ToDD_MM_AAAA_Multi(((Range)range.Cells[row, 1]).Text); // FilaAGuardar.Docum = Convert.ToInt32(((Range)range.Cells[row, 2]).Text); // FilaAGuardar.Detalle = ((Range)range.Cells[row, 3]).Text; // FilaAGuardar.Debe = decimal.Parse(((Range)range.Cells[row, 4]).Text); // FilaAGuardar.Haber = decimal.Parse(((Range)range.Cells[row, 5]).Text); // FilaAGuardar.Saldo = decimal.Parse(((Range)range.Cells[row, 6]).Text); // //Parte del voucher // FilaAGuardar.CodigoInterno = ((Range)range.Cells[row, 7]).Text; // FilaAGuardar.Rut = ((Range)range.Cells[row, 8]).Text; // FilaAGuardar.Glosa = ((Range)range.Cells[row, 9]).Text; // ReturnValues.Add(FilaAGuardar); // } // workBook.Close(); // File.Delete(path); // } // } // return ReturnValues; //} public static Tuple <bool, List <ObjCartolaYVouchers> > ConvertirAVoucher(List <ObjCartolaYVouchers> LstCartolaYVouchers, ClientesContablesModel ObjCliente, FacturaPoliContext db, CuentaContableModel CuentaConsultada, string FechaCartola, int NumeroCartola) { bool Result = false; List <ObjCartolaYVouchers> LosQueNoPudieronInsertarse = new List <ObjCartolaYVouchers>(); List <ObjCartolaYVouchers> LosQueTienenInformacion = LstCartolaYVouchers.Where(x => !string.IsNullOrWhiteSpace(x.CodigoInterno)).ToList(); if (!LosQueTienenInformacion.Any()) { throw new Exception("No hay registros validos para insertar."); } //Los que están en la cartola pero no en el mayor... List <ObjCartolaYVouchers> Pendientes = LstCartolaYVouchers.Where(x => string.IsNullOrWhiteSpace(x.CodigoInterno)).ToList(); LosQueNoPudieronInsertarse.AddRange(Pendientes); List <CartolaBancariaModel> CartolaCompleta = new List <CartolaBancariaModel>(); if (LstCartolaYVouchers.Any()) { db.Configuration.AutoDetectChangesEnabled = false; //revisar como mejora la performance DateTime FechaConvertida = ParseExtensions.ToDD_MM_AAAA_Multi(FechaCartola); DeleteCartolaBancariaExistente(FechaConvertida, NumeroCartola, db, ObjCliente); List <CartolaBancariaModel> CartolaDetalle = new List <CartolaBancariaModel>(); DateTime Fecha = LosQueTienenInformacion.FirstOrDefault().Fecha; int? nullableProxVoucherNumber = ParseExtensions.GetNumVoucher(ObjCliente, db, Fecha.Month, Fecha.Year); int baseNumberFolio = nullableProxVoucherNumber.Value; List <VoucherModel> LstVoucher = new List <VoucherModel>(); foreach (ObjCartolaYVouchers itemCartola in LosQueTienenInformacion) { CuentaContableModel CuentaAUsar = UtilesContabilidad.CuentaContableDesdeCodInterno(itemCartola.CodigoInterno, ObjCliente); QuickReceptorModel Prestador = UtilesContabilidad.ObtenerPrestadorSiExiste(itemCartola.Rut, db, ObjCliente); TipoOrigen TipoPrestador = UtilesContabilidad.RetornaTipoReceptor(Prestador); if (CuentaAUsar == null) { throw new Exception($"La cuenta contable que intentas ingresar no está en el plan de cuentas O no está digitada en el excel CUENTA CONTABLE CON ERROR : {itemCartola.CodigoInterno}"); } if (CuentaAUsar.TieneAuxiliar == 1 && Prestador != null || CuentaAUsar.TieneAuxiliar == 0 && Prestador == null) { VoucherModel CapaVoucher = new VoucherModel(); CapaVoucher.TipoOrigenVoucher = TipoPrestador; CapaVoucher.FechaEmision = itemCartola.Fecha; CapaVoucher.NumeroVoucher = baseNumberFolio; CapaVoucher.NumVoucherWithDate = ParseExtensions.BuildNewFormatNumVoucher(baseNumberFolio, Fecha); CapaVoucher.ClientesContablesModelID = ObjCliente.ClientesContablesModelID; CapaVoucher.Glosa = itemCartola.Glosa; if (itemCartola.Debe > 0 && itemCartola.Haber == 0) { CapaVoucher.Tipo = TipoVoucher.Ingreso; } else if (itemCartola.Haber > 0 && itemCartola.Debe == 0) { CapaVoucher.Tipo = TipoVoucher.Egreso; } //Armamos tabla Detalle Voucher //1 List <DetalleVoucherModel> LstToEvaluate = new List <DetalleVoucherModel>(); DetalleVoucherModel DetalleCartola = new DetalleVoucherModel(); //cada linea es solo 1 monto DetalleCartola.VoucherModelID = CapaVoucher.VoucherModelID; DetalleCartola.ObjCuentaContable = CuentaConsultada; DetalleCartola.FechaDoc = itemCartola.Fecha; DetalleCartola.GlosaDetalle = itemCartola.Glosa; if (itemCartola.Debe > 0 && itemCartola.Haber == 0) { DetalleCartola.MontoDebe = itemCartola.Debe; } else if (itemCartola.Haber > 0 && itemCartola.Debe == 0) { DetalleCartola.MontoHaber = itemCartola.Haber; } //2 DetalleVoucherModel DetalleConciliacion = new DetalleVoucherModel(); DetalleConciliacion.VoucherModelID = CapaVoucher.VoucherModelID; DetalleConciliacion.FechaDoc = itemCartola.Fecha; DetalleConciliacion.ObjCuentaContable = CuentaAUsar; DetalleConciliacion.GlosaDetalle = itemCartola.Glosa; if (DetalleCartola.MontoDebe > 0 && DetalleCartola.MontoHaber == 0) { DetalleConciliacion.MontoHaber = DetalleCartola.MontoDebe; } else if (DetalleCartola.MontoHaber > 0 && DetalleCartola.MontoDebe == 0) { DetalleConciliacion.MontoDebe = DetalleCartola.MontoHaber; } LstToEvaluate.Add(DetalleCartola); LstToEvaluate.Add(DetalleConciliacion); //Guardamos los detalles en una lista de detalles if (LstToEvaluate.Sum(r => r.MontoDebe) == LstToEvaluate.Sum(r => r.MontoHaber)) { foreach (DetalleVoucherModel itemDetalle in LstToEvaluate) { itemDetalle.Conciliado = true; } CapaVoucher.ListaDetalleVoucher = LstToEvaluate; LstVoucher.Add(CapaVoucher); if (CuentaAUsar.TieneAuxiliar == 1 && Prestador != null) { foreach (DetalleVoucherModel NuevoDetalleVoucher in LstToEvaluate) { if (NuevoDetalleVoucher.ObjCuentaContable == CuentaAUsar) { CuentaContableModel CtaAux = NuevoDetalleVoucher.ObjCuentaContable; AuxiliaresModel Auxiliar = new AuxiliaresModel(); Auxiliar.LineaNumeroDetalle = CapaVoucher.ListaDetalleVoucher.Count; Auxiliar.MontoTotal = NuevoDetalleVoucher.MontoDebe + NuevoDetalleVoucher.MontoHaber; Auxiliar.objCtaContable = CtaAux; NuevoDetalleVoucher.Auxiliar = Auxiliar; List <AuxiliaresDetalleModel> lstAuxDetalle = new List <AuxiliaresDetalleModel>(); AuxiliaresDetalleModel nuevoAuxDetalle = new AuxiliaresDetalleModel(); decimal MontoTotal = NuevoDetalleVoucher.MontoDebe + NuevoDetalleVoucher.MontoHaber; nuevoAuxDetalle.TipoDocumento = itemCartola.TipoDteNumVoucher; nuevoAuxDetalle.Fecha = itemCartola.Fecha; nuevoAuxDetalle.FechaContabilizacion = itemCartola.Fecha; nuevoAuxDetalle.Folio = itemCartola.Docum; nuevoAuxDetalle.Individuo2 = Prestador; nuevoAuxDetalle.MontoNetoLinea = 0; nuevoAuxDetalle.MontoExentoLinea = 0; nuevoAuxDetalle.MontoIVALinea = 0; nuevoAuxDetalle.MontoTotalLinea = MontoTotal; nuevoAuxDetalle.AuxiliaresModelID = Auxiliar.AuxiliaresModelID; nuevoAuxDetalle.MontoIVANoRecuperable = 0; nuevoAuxDetalle.MontoIVAUsoComun = 0; nuevoAuxDetalle.MontoIVAActivoFijo = 0; if (CtaAux.TipoAuxiliarQueUtiliza == TipoAuxiliar.Honorarios) { nuevoAuxDetalle.ValorLiquido = MontoTotal; } lstAuxDetalle.Add(nuevoAuxDetalle); Auxiliar.ListaDetalleAuxiliares = lstAuxDetalle; } } } baseNumberFolio++; } } else { LosQueNoPudieronInsertarse.Add(itemCartola); } } List <DetalleVoucherModel> detalle = LstVoucher.SelectMany(x => x.ListaDetalleVoucher.Where(y => y.Auxiliar != null)).ToList(); db.DBVoucher.AddRange(LstVoucher); db.SaveChanges(); if (detalle.Any()) { detalle.ForEach(x => { x.Auxiliar.DetalleVoucherModelID = x.DetalleVoucherModelID; }); foreach (AuxiliaresModel itemAuxiliar in detalle.Select(x => x.Auxiliar).ToArray()) { db.Entry(itemAuxiliar).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); } CartolaDetalle = LstVoucher.SelectMany(x => x.ListaDetalleVoucher.Where(y => y.ObjCuentaContable.CuentaContableModelID == CuentaConsultada.CuentaContableModelID)) .Select(x => new CartolaBancariaModel { VoucherModelID = x.VoucherModelID, Fecha = x.FechaDoc, Folio = x.Auxiliar != null ? x.Auxiliar.ListaDetalleAuxiliares.FirstOrDefault().Folio : 0, EstaConciliado = true, Detalle = x.GlosaDetalle, CuentaContableModelID = x.ObjCuentaContable, Debe = x.MontoDebe, Haber = x.MontoHaber }).ToList(); bool ResultadoInsercionCartolaBancaria = GuardarCartolaBancaria(CartolaDetalle, FechaCartola, NumeroCartola, CuentaConsultada, ObjCliente, db); Result = true; } else { throw new Exception("No hay registros para insertar."); } return(Tuple.Create(Result, LosQueNoPudieronInsertarse)); }