public ActionResult crearMatriculaND(int id, string placa, string observacion, int valor, string fechamatricula, int tipodoc, string bodega, string nit, string asesor, string perfilc, int tramitador_id, int cartera) { int response = 0; int idbodega = context.bodega_concesionario.Where(x => x.bodccs_nombre == bodega).Select(z => z.id) .FirstOrDefault(); int tpdocumento = context.tp_doc_registros.Where(x => x.tpdoc_id == tipodoc).Select(z => z.tpdoc_id) .FirstOrDefault(); int terceroid = context.icb_terceros.Where(x => x.doc_tercero == nit).Select(z => z.tercero_id) .FirstOrDefault(); int?idasesor = context.vw_pendientesEntrega.Where(x => x.asesor == asesor).Select(z => z.idAsesor) .FirstOrDefault(); int idperfilc = context.perfil_contable_documento.Where(x => x.tipo == tpdocumento).Select(z => z.id) .FirstOrDefault(); if (tramitador_id == 0 && cartera == 0) { tramitador_id = Convert.ToInt32(Session["user_usuarioid"]); } if (ModelState.IsValid) { //consecutivo grupoconsecutivos grupo = context.grupoconsecutivos.FirstOrDefault(x => x.documento_id == tpdocumento && x.bodega_id == idbodega); if (grupo != null) { DocumentoPorBodegaController doc = new DocumentoPorBodegaController(); long consecutivo = doc.BuscarConsecutivo(grupo.grupo); //Encabezado documento encab_documento encabezado = new encab_documento { tipo = tpdocumento, numero = consecutivo, nit = terceroid, fecha = DateTime.Now, valor_total = Convert.ToDecimal(valor), iva = Convert.ToDecimal(0), retencion = Convert.ToDecimal(0), retencion_ica = Convert.ToDecimal(0), retencion_iva = Convert.ToDecimal(0), vendedor = idasesor, documento = nit, valor_mercancia = Convert.ToDecimal(valor), userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), fec_creacion = DateTime.Now, porcen_retencion = float.Parse("0", CultureInfo.InvariantCulture), porcen_reteiva = float.Parse("0", CultureInfo.InvariantCulture), porcen_retica = float.Parse("0", CultureInfo.InvariantCulture), perfilcontable = idperfilc, bodega = idbodega, id_pedido_vehiculo = id }; context.encab_documento.Add(encabezado); //movimiento contable //buscamos en perfil cuenta documento, por medio del perfil seleccionado var parametrosCuentasVerificar = (from perfil in context.perfil_cuentas_documento join nombreParametro in context.paramcontablenombres on perfil.id_nombre_parametro equals nombreParametro.id join cuenta in context.cuenta_puc on perfil.cuenta equals cuenta.cntpuc_id where perfil.id_perfil == idperfilc select new { perfil.id, perfil.id_nombre_parametro, perfil.cuenta, perfil.centro, perfil.id_perfil, nombreParametro.descripcion_parametro, cuenta.cntpuc_numero }).ToList(); int secuencia = 1; decimal totalDebitos = 0; decimal totalCreditos = 0; List <DocumentoDescuadradoModel> listaDescuadrados = new List <DocumentoDescuadradoModel>(); List <cuentas_valores> ids_cuentas_valores = new List <cuentas_valores>(); centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0"); int idCentroCero = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0; foreach (var parametro in parametrosCuentasVerificar) { string descripcionParametro = context.paramcontablenombres .FirstOrDefault(x => x.id == parametro.id_nombre_parametro).descripcion_parametro; cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta); if (buscarCuenta != null) { if (parametro.id_nombre_parametro == 2 && Convert.ToDecimal(0) != 0 || parametro.id_nombre_parametro == 3 && Convert.ToDecimal(0) != 0 || parametro.id_nombre_parametro == 4 && Convert.ToDecimal(0) != 0 || parametro.id_nombre_parametro == 5 && Convert.ToDecimal(0) != 0 || parametro.id_nombre_parametro == 10 || parametro.id_nombre_parametro == 11) { mov_contable movNuevo = new mov_contable { id_encab = 0, seq = secuencia, idparametronombre = parametro.id_nombre_parametro, cuenta = parametro.cuenta, centro = parametro.centro, fec = DateTime.Now, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }; // movNuevo.detalle = ndm.nota1; cuenta_puc info = context.cuenta_puc.Where(i => i.cntpuc_id == parametro.cuenta) .FirstOrDefault(); if (info.tercero) { movNuevo.nit = terceroid; } else { icb_terceros tercero = context.icb_terceros.Where(t => t.doc_tercero == "0") .FirstOrDefault(); movNuevo.nit = tercero.tercero_id; } // las siguientes validaciones se hacen dependiendo de la cuenta que esta moviendo la nota credito, para guardar la informacion acorde if (parametro.id_nombre_parametro == 10) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(valor); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(valor); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(valor); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(valor); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(valor); } } if (parametro.id_nombre_parametro == 11) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(valor); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = Convert.ToDecimal(valor); movNuevo.debito = 0; movNuevo.creditoniif = Convert.ToDecimal(valor); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = Convert.ToDecimal(valor); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 5) { movNuevo.credito = Convert.ToDecimal(valor); movNuevo.debito = 0; } } if (parametro.id_nombre_parametro == 2) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(valor); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = Convert.ToDecimal(encabezado.iva); movNuevo.debito = 0; movNuevo.creditoniif = Convert.ToDecimal(encabezado.iva); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = Convert.ToDecimal(encabezado.iva); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 5) { movNuevo.credito = Convert.ToDecimal(encabezado.iva); movNuevo.debito = 0; } } if (parametro.id_nombre_parametro == 3 && Convert.ToDecimal(encabezado.retencion) != 0) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(valor); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion); } } if (parametro.id_nombre_parametro == 4) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(encabezado.iva); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion_iva); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion_iva); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion_iva); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion_iva); } } if (parametro.id_nombre_parametro == 5) { if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(valor); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = encabezado.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion_ica); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion_ica); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(encabezado.retencion_ica); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(encabezado.retencion_ica); } } secuencia++; //Cuentas valores cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x => x.centro == parametro.centro && x.cuenta == parametro.cuenta && x.nit == movNuevo.nit); if (buscar_cuentas_valores != null) { buscar_cuentas_valores.debito += movNuevo.debito; buscar_cuentas_valores.credito += movNuevo.credito; buscar_cuentas_valores.debitoniff += movNuevo.debitoniif; buscar_cuentas_valores.creditoniff += movNuevo.creditoniif; context.Entry(buscar_cuentas_valores).State = EntityState.Modified; } else { DateTime fechaHoy = DateTime.Now; cuentas_valores crearCuentaValor = new cuentas_valores { ano = fechaHoy.Year, mes = fechaHoy.Month, cuenta = movNuevo.cuenta, centro = movNuevo.centro, nit = movNuevo.nit, debito = movNuevo.debito, credito = movNuevo.credito, debitoniff = movNuevo.debitoniif, creditoniff = movNuevo.creditoniif }; context.cuentas_valores.Add(crearCuentaValor); } context.mov_contable.Add(movNuevo); totalCreditos += movNuevo.credito; totalDebitos += movNuevo.debito; listaDescuadrados.Add(new DocumentoDescuadradoModel { NumeroCuenta = "(" + info.cntpuc_numero + ")" + info.cntpuc_descp, DescripcionParametro = descripcionParametro, ValorDebito = movNuevo.debito, ValorCredito = movNuevo.credito }); } } } if (totalDebitos != totalCreditos) { response = 0; } else { context.SaveChanges(); DocumentoPorBodegaController conse = new DocumentoPorBodegaController(); doc.ActualizarConsecutivo(grupo.grupo, consecutivo); crearMatricula(id, tramitador_id, cartera, placa, valor, fechamatricula, observacion, encabezado); response = 1; } } else { response = 0; } } else { List <ModelErrorCollection> errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); response = 0; } return(Json(response, JsonRequestBehavior.AllowGet)); }
public ActionResult Create(NotasContablesModel ncp) { if (ModelState.IsValid) { //consecutivo grupoconsecutivos grupo = context.grupoconsecutivos.FirstOrDefault(x => x.documento_id == ncp.tipo && x.bodega_id == ncp.bodega); if (grupo != null) { DocumentoPorBodegaController doc = new DocumentoPorBodegaController(); long consecutivo = doc.BuscarConsecutivo(grupo.grupo); //Encabezado documento encab_documento encabezado = new encab_documento { tipo = ncp.tipo, numero = consecutivo, nit = ncp.nit, fecha = DateTime.Now, valor_total = Convert.ToDecimal(ncp.valor_total), iva = Convert.ToDecimal(ncp.iva), retencion = Convert.ToDecimal(ncp.retencion), retencion_ica = Convert.ToDecimal(ncp.retencion_ica), retencion_iva = Convert.ToDecimal(ncp.retencion_iva), vendedor = ncp.vendedor, documento = ncp.documento, prefijo = ncp.prefijo, valor_mercancia = Convert.ToDecimal(ncp.costo), nota1 = ncp.nota1, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), fec_creacion = DateTime.Now, porcen_retencion = float.Parse(ncp.por_retencion, CultureInfo .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal porcen_reteiva = float.Parse(ncp.por_retencion_iva, CultureInfo .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal porcen_retica = float.Parse(ncp.por_retencion_ica, CultureInfo .InvariantCulture), //esto se utiliza para que al guardar el dato en la BD me quede con la "," del decimal perfilcontable = ncp.perfilcontable, bodega = ncp.bodega }; context.encab_documento.Add(encabezado); // ***** ACTUALIZA ENCABEZADO ***** //valor aplicado tengo que actualizarlo en la factura a la que estoy generando la nota //buscas la factura if (!string.IsNullOrWhiteSpace(ncp.documento) && ncp.prefijo != null) { int numerodocumento = Convert.ToInt32(ncp.documento); encab_documento factura = context.encab_documento .Where(d => d.idencabezado == ncp.prefijo && d.numero == numerodocumento).FirstOrDefault(); if (factura != null) { int valoraplicado = Convert.ToInt32(factura.valor_aplicado) != null ? Convert.ToInt32(factura.valor_aplicado) : 0; decimal nuevovalor = Convert.ToDecimal(valoraplicado) + Convert.ToDecimal(ncp.valor_total); factura.valor_aplicado = Convert.ToDecimal(nuevovalor); context.Entry(factura).State = EntityState.Modified; // si al crear la nota credito se selecciono factura se debe guardar el registro tambien en cruce documentos, de lo contrario NO //Cruce documentos cruce_documentos cd = new cruce_documentos { idtipo = ncp.tipo, numero = consecutivo, idtipoaplica = Convert.ToInt32(ncp.tipofactura), numeroaplica = Convert.ToInt32(ncp.documento), valor = Convert.ToDecimal(ncp.valor_total), fecha = DateTime.Now, fechacruce = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }; context.cruce_documentos.Add(cd); // ***** ACTUALIZA CRUCE DE DOCUMENTOS ***** } } //movimiento contable //buscamos en perfil cuenta documento, por medio del perfil seleccionado var parametrosCuentasVerificar = (from perfil in context.perfil_cuentas_documento join nombreParametro in context.paramcontablenombres on perfil.id_nombre_parametro equals nombreParametro.id join cuenta in context.cuenta_puc on perfil.cuenta equals cuenta.cntpuc_id where perfil.id_perfil == ncp.perfilcontable select new { perfil.id, perfil.id_nombre_parametro, perfil.cuenta, perfil.centro, perfil.id_perfil, nombreParametro.descripcion_parametro, cuenta.cntpuc_numero }).ToList(); int secuencia = 1; decimal totalDebitos = 0; decimal totalCreditos = 0; List <DocumentoDescuadradoModel> listaDescuadrados = new List <DocumentoDescuadradoModel>(); List <cuentas_valores> ids_cuentas_valores = new List <cuentas_valores>(); centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0"); int idCentroCero = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0; foreach (var parametro in parametrosCuentasVerificar) { string descripcionParametro = context.paramcontablenombres .FirstOrDefault(x => x.id == parametro.id_nombre_parametro).descripcion_parametro; cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta); if (buscarCuenta != null) { if (parametro.id_nombre_parametro == 2 && Convert.ToDecimal(ncp.iva) != 0 || parametro.id_nombre_parametro == 3 && Convert.ToDecimal(ncp.retencion) != 0 || parametro.id_nombre_parametro == 4 && Convert.ToDecimal(ncp.por_retencion_iva) != 0 || parametro.id_nombre_parametro == 5 && Convert.ToDecimal(ncp.retencion_ica) != 0 || parametro.id_nombre_parametro == 1 || parametro.id_nombre_parametro == 9) { mov_contable movNuevo = new mov_contable { id_encab = ncp.id_encab, seq = secuencia, idparametronombre = parametro.id_nombre_parametro, cuenta = parametro.cuenta, centro = parametro.centro, fec = DateTime.Now, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), detalle = ncp.nota1 }; cuenta_puc info = context.cuenta_puc.Where(i => i.cntpuc_id == parametro.cuenta) .FirstOrDefault(); if (info.tercero) { movNuevo.nit = ncp.nit; } else { icb_terceros tercero = context.icb_terceros.Where(t => t.doc_tercero == "0") .FirstOrDefault(); movNuevo.nit = tercero.tercero_id; } // las siguientes validaciones se hacen dependiendo de la cuenta que esta moviendo la nota credito, para guardar la informacion acorde if (parametro.id_nombre_parametro == 1) // if (parametro.id_nombre_parametro == 10) { /*if (info.aplicaniff==true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.costo); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { //movNuevo.credito = Convert.ToDecimal(ncp.valor_total); //movNuevo.debito = 0; //movNuevo.creditoniif = Convert.ToDecimal(ncp.valor_total); //movNuevo.debitoniif = 0; movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.valor_total); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.valor_total); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.valor_total); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.valor_total); } } if (parametro.id_nombre_parametro == 9) // credito { /*if (info.aplicaniff == true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.costo); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = Convert.ToDecimal(ncp.costo); movNuevo.debito = 0; movNuevo.creditoniif = Convert.ToDecimal(ncp.costo); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = Convert.ToDecimal(ncp.costo); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 5) { movNuevo.credito = Convert.ToDecimal(ncp.costo); movNuevo.debito = 0; } } if (parametro.id_nombre_parametro == 2) // credito { /*if (info.aplicaniff == true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.costo); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = Convert.ToDecimal(ncp.iva); movNuevo.debito = 0; movNuevo.creditoniif = Convert.ToDecimal(ncp.iva); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = Convert.ToDecimal(ncp.iva); movNuevo.debitoniif = 0; } if (buscarCuenta.concepniff == 5) { movNuevo.credito = Convert.ToDecimal(ncp.iva); movNuevo.debito = 0; } } if (parametro.id_nombre_parametro == 3) { /*if (info.aplicaniff == true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.costo); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion); } } if (parametro.id_nombre_parametro == 4) { /*if (info.aplicaniff == true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.iva); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion_iva); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion_iva); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion_iva); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion_iva); } } if (parametro.id_nombre_parametro == 5) { /*if (info.aplicaniff == true) * { * * }*/ if (info.manejabase) { movNuevo.basecontable = Convert.ToDecimal(ncp.costo); } else { movNuevo.basecontable = 0; } if (info.documeto) { movNuevo.documento = ncp.documento; } if (buscarCuenta.concepniff == 1) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion_ica); movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion_ica); } if (buscarCuenta.concepniff == 4) { movNuevo.creditoniif = 0; movNuevo.debitoniif = Convert.ToDecimal(ncp.retencion_ica); } if (buscarCuenta.concepniff == 5) { movNuevo.credito = 0; movNuevo.debito = Convert.ToDecimal(ncp.retencion_ica); } } secuencia++; //Cuentas valores cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x => x.centro == parametro.centro && x.cuenta == parametro.cuenta && x.nit == movNuevo.nit); if (buscar_cuentas_valores != null) { buscar_cuentas_valores.debito += movNuevo.debito; buscar_cuentas_valores.credito += movNuevo.credito; buscar_cuentas_valores.debitoniff += movNuevo.debitoniif; buscar_cuentas_valores.creditoniff += movNuevo.creditoniif; context.Entry(buscar_cuentas_valores).State = EntityState.Modified; } else { DateTime fechaHoy = DateTime.Now; cuentas_valores crearCuentaValor = new cuentas_valores { ano = fechaHoy.Year, mes = fechaHoy.Month, cuenta = movNuevo.cuenta, centro = movNuevo.centro, nit = movNuevo.nit, debito = movNuevo.debito, credito = movNuevo.credito, debitoniff = movNuevo.debitoniif, creditoniff = movNuevo.creditoniif }; context.cuentas_valores .Add(crearCuentaValor); // ***** ACTUALIZA CUENTA VALORES ***** } context.mov_contable.Add(movNuevo); // ***** ACTUALIZA MOV CONTABLES ***** totalCreditos += movNuevo.credito; totalDebitos += movNuevo.debito; listaDescuadrados.Add( new DocumentoDescuadradoModel // ***** ACTUALIZA listaDescuadrados ***** { NumeroCuenta = "(" + info.cntpuc_numero + ")" + info.cntpuc_descp, DescripcionParametro = descripcionParametro, ValorDebito = movNuevo.debito, ValorCredito = movNuevo.credito }); } } } if (totalDebitos != totalCreditos) { TempData["mensaje_error"] = "El documento no tiene los movimientos calculados correctamente, verifique el perfil del documento"; ViewBag.documentoSeleccionado = encabezado.tipo; ViewBag.bodegaSeleccionado = encabezado.bodega; ViewBag.perfilSeleccionado = encabezado.perfilcontable; ViewBag.documentoDescuadrado = listaDescuadrados; ViewBag.calculoDebito = totalDebitos; ViewBag.calculoCredito = totalCreditos; listas(); return(View(ncp)); } context.SaveChanges(); TempData["mensaje"] = "registro creado correctamente"; DocumentoPorBodegaController conse = new DocumentoPorBodegaController(); doc.ActualizarConsecutivo(grupo.grupo, consecutivo); return(RedirectToAction("Create")); } TempData["mensaje_error"] = "no hay consecutivo"; } else { TempData["mensaje_error"] = "No fue posible guardar el registro, por favor valide"; List <ModelErrorCollection> errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); } listas(); return(View(ncp)); }
public ActionResult Create(encab_documento encabezado, int?menu) { listas(); string lista = Request["lista"]; int datos = Convert.ToInt32(lista); //consecutivo int grupo = context.grupoconsecutivos .FirstOrDefault(x => x.documento_id == encabezado.tipo && x.bodega_id == encabezado.bodega).grupo; DocumentoPorBodegaController doc = new DocumentoPorBodegaController(); long consecutivo = doc.BuscarConsecutivo(grupo); encabezado.numero = consecutivo; encabezado.impoconsumo = 0; encabezado.fec_creacion = DateTime.Now; encabezado.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]); encabezado.estado = true; context.encab_documento.Add(encabezado); context.SaveChanges(); int prueba = encabezado.idencabezado; int id_encabezado = context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault() .idencabezado; int total = Convert.ToInt32(lista); for (int i = 1; i <= total; i++) { if (!string.IsNullOrEmpty(Request["cuenta_" + i])) { mov_contable mov = new mov_contable { id_encab = id_encabezado, seq = i, idparametronombre = 19, cuenta = Convert.ToInt32(Request["cuenta_" + i]) }; if (!string.IsNullOrEmpty(Request["centro_" + i])) { mov.centro = Convert.ToInt32(Request["centro_" + i]); } else { var centroCosto = (from c in context.centro_costo where c.pre_centcst == "0" select new { c.centcst_id }).FirstOrDefault(); mov.centro = Convert.ToInt32(centroCosto.centcst_id); } if (!string.IsNullOrEmpty(Request["nit_" + i])) { mov.nit = Convert.ToInt32(Request["nit_" + i]); } else { var nitCero = (from t in context.icb_terceros where t.doc_tercero == "0" select new { t.tercero_id }).FirstOrDefault(); mov.nit = Convert.ToInt32(nitCero.tercero_id); } if (!string.IsNullOrEmpty(Request["nitAdmin_" + i])) { mov.idterceroadmin = Convert.ToInt32(Request["nitAdmin_" + i]); } mov.fec = encabezado.fecha; if (!string.IsNullOrEmpty(Request["debito_" + i])) { mov.debito = Convert.ToDecimal(Request["debito_" + i]); } if (!string.IsNullOrEmpty(Request["credito_" + i])) { mov.credito = Convert.ToDecimal(Request["credito_" + i]); } if (!string.IsNullOrEmpty(Request["base_" + i])) { mov.basecontable = Convert.ToDecimal(Request["debitoNiff_" + i]); } if (!string.IsNullOrEmpty(Request["debitoNiff_" + i])) { mov.debitoniif = Convert.ToDecimal(Request["debitoNiff_" + i]); } if (!string.IsNullOrEmpty(Request["creditoNiff_" + i])) { mov.creditoniif = Convert.ToDecimal(Request["creditoNiff_" + i]); } mov.detalle = Request["detalle_" + i]; mov.fec_creacion = DateTime.Now; mov.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]); mov.estado = true; context.mov_contable.Add(mov); context.SaveChanges(); } } DocumentoPorBodegaController conse = new DocumentoPorBodegaController(); doc.ActualizarConsecutivo(grupo, consecutivo); TempData["mensaje"] = "Registro creado correctamente"; context.SaveChanges(); return(RedirectToAction("Create", new { id = encabezado.idencabezado, menu })); }