public icb_doc_consecutivos BuscarConsecutivo(tp_doc_registros tp_doc, int id_tipo_documento, int id_bodega) { int anioActual = DateTime.Now.Year; int mesActual = DateTime.Now.Month; if (tp_doc.consecano) { return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega && x.doccons_ano == anioActual)); } else if (tp_doc.consecmes) { return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega && x.doccons_ano == anioActual && x.doccons_mes == mesActual)); } else { return(context.icb_doc_consecutivos.FirstOrDefault(x => x.doccons_idtpdoc == id_tipo_documento && x.doccons_bodega == id_bodega)); } }
public ActionResult Create(EntradaSalidaModel modelo, int?menu) { if (ModelState.IsValid) { long numeroConsecutivo = 0; ConsecutivosGestion gestionConsecutivo = new ConsecutivosGestion(); icb_doc_consecutivos numeroConsecutivoAux = new icb_doc_consecutivos(); tp_doc_registros buscarTipoDocRegistro = context.tp_doc_registros.FirstOrDefault(x => x.tpdoc_id == modelo.TipoDocumento); numeroConsecutivoAux = gestionConsecutivo.BuscarConsecutivo(buscarTipoDocRegistro, modelo.TipoDocumento, modelo.BodegaOrigen); grupoconsecutivos buscarGrupoConsecutivos = context.grupoconsecutivos.FirstOrDefault(x => x.documento_id == modelo.TipoDocumento && x.bodega_id == modelo.BodegaOrigen); int numeroGrupo = buscarGrupoConsecutivos != null ? buscarGrupoConsecutivos.grupo : 0; if (numeroConsecutivoAux != null) { numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente; } else { TempData["mensaje_error"] = "No existe un numero consecutivo asignado para este tipo de documento"; ListasDesplegables(); ViewBag.documentoSeleccionado = modelo.TipoDocumento; ViewBag.bodegaSeleccionada = modelo.BodegaOrigen; ViewBag.perfilSeleccionado = modelo.PerfilContable; BuscarFavoritos(menu); return(View(modelo)); } // Si llega aqui significa que si hay un numero de documento consecutivo decimal sumaCostosReferenciasAux = 0; int numero_repuestosAux = Convert.ToInt32(Request["lista_repuestos"]); int cantidad_total = Convert.ToInt32(Request["cantidad_total"]); if (cantidad_total <= 0) { TempData["mensaje_error"] = "No ha agregado ninguna referencia para realizar el proceso"; ListasDesplegables(); ViewBag.documentoSeleccionado = modelo.TipoDocumento; ViewBag.bodegaSeleccionada = modelo.BodegaOrigen; ViewBag.perfilSeleccionado = modelo.PerfilContable; BuscarFavoritos(menu); return(View(modelo)); } for (int i = 1; i <= numero_repuestosAux; i++) { string referencia_codigo = Request["codigo_referencia" + i]; string referencia_valor = Request["valor_referencia" + i]; if (string.IsNullOrEmpty(referencia_codigo) || string.IsNullOrEmpty(referencia_valor)) { // Significa que la agregaron y la eliminaron } else { sumaCostosReferenciasAux += Convert.ToDecimal(referencia_valor); } } 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 == modelo.PerfilContable select new { perfil.id, perfil.id_nombre_parametro, perfil.cuenta, perfil.centro, perfil.id_perfil, nombreParametro.descripcion_parametro, cuenta.cntpuc_numero }).ToList(); List <DocumentoDescuadradoModel> listaDescuadrados = new List <DocumentoDescuadradoModel>(); decimal calcularDebito = 0; decimal calcularCredito = 0; foreach (var parametro in parametrosCuentasVerificar) { cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta); if (buscarCuenta != null) { if (parametro.id_nombre_parametro == 9 || parametro.id_nombre_parametro == 12) { if (parametro.id_nombre_parametro == 12) { if (buscarCuenta.concepniff == 1 || buscarCuenta.concepniff == 5) { calcularCredito += sumaCostosReferenciasAux; listaDescuadrados.Add(new DocumentoDescuadradoModel { NumeroCuenta = parametro.cntpuc_numero, DescripcionParametro = parametro.descripcion_parametro, ValorDebito = 0, ValorCredito = sumaCostosReferenciasAux }); //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ // calcularDebito += sumaCostosReferenciasAux; // listaDescuadrados.Add(new DocumentoDescuadradoModel() // { // NumeroCuenta = parametro.cntpuc_numero, // DescripcionParametro = parametro.descripcion_parametro, // ValorDebito = sumaCostosReferenciasAux, // ValorCredito = 0 // }); //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // calcularCredito += sumaCostosReferenciasAux; // listaDescuadrados.Add(new DocumentoDescuadradoModel() // { // NumeroCuenta = parametro.cntpuc_numero, // DescripcionParametro = parametro.descripcion_parametro, // ValorDebito = 0, // ValorCredito = sumaCostosReferenciasAux // }); //} } else { listaDescuadrados.Add(new DocumentoDescuadradoModel { NumeroCuenta = parametro.cntpuc_numero, DescripcionParametro = parametro.descripcion_parametro, ValorDebito = 0, ValorCredito = 0 }); } } else { if (buscarCuenta.concepniff == 1 || buscarCuenta.concepniff == 5) { calcularDebito += sumaCostosReferenciasAux; listaDescuadrados.Add(new DocumentoDescuadradoModel { NumeroCuenta = parametro.cntpuc_numero, DescripcionParametro = parametro.descripcion_parametro, ValorDebito = sumaCostosReferenciasAux, ValorCredito = 0 }); //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ // calcularDebito += sumaCostosReferenciasAux; // listaDescuadrados.Add(new DocumentoDescuadradoModel() // { // NumeroCuenta = parametro.cntpuc_numero, // DescripcionParametro = parametro.descripcion_parametro, // ValorDebito = sumaCostosReferenciasAux, // ValorCredito = 0 // }); //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // calcularCredito += sumaCostosReferenciasAux; // listaDescuadrados.Add(new DocumentoDescuadradoModel() // { // NumeroCuenta = parametro.cntpuc_numero, // DescripcionParametro = parametro.descripcion_parametro, // ValorDebito = 0, // ValorCredito = sumaCostosReferenciasAux // }); //} } else { listaDescuadrados.Add(new DocumentoDescuadradoModel { NumeroCuenta = parametro.cntpuc_numero, DescripcionParametro = parametro.descripcion_parametro, ValorDebito = 0, ValorCredito = 0 }); } } } } } if (calcularCredito != calcularDebito) { TempData["documento_descuadrado"] = "El documento no tiene los movimientos calculados correctamente"; ViewBag.documentoSeleccionado = modelo.TipoDocumento; ViewBag.bodegaSeleccionada = modelo.BodegaOrigen; ViewBag.perfilSeleccionado = modelo.PerfilContable; ViewBag.documentoDescuadrado = listaDescuadrados; ViewBag.calculoDebito = calcularDebito; ViewBag.calculoCredito = calcularCredito; ListasDesplegables(); BuscarFavoritos(menu); return(View(modelo)); } icb_sysparameter buscarNit = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P33"); int nitTraslado = buscarNit != null?Convert.ToInt32(buscarNit.syspar_value) : 0; encab_documento crearEncabezado = new encab_documento { tipo = modelo.TipoDocumento, bodega = modelo.BodegaOrigen, numero = numeroConsecutivo, nit = nitTraslado, //crearEncabezado.documento = modelo.Referencia; // Puede haber varias referencias fecha = DateTime.Now, fec_creacion = DateTime.Now, vencimiento = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), impoconsumo = 0, perfilcontable = modelo.PerfilContable, notas = modelo.Notas }; context.encab_documento.Add(crearEncabezado); bool guardar = context.SaveChanges() > 0; encab_documento buscarUltimoEncabezado = context.encab_documento.OrderByDescending(x => x.idencabezado).FirstOrDefault(); decimal sumaCostosReferencias = 0; int numero_repuestos = Convert.ToInt32(Request["lista_repuestos"]); int sequ = 1; for (int i = 1; i <= numero_repuestos; i++) { string referencia_codigo = Request["codigo_referencia" + i]; string referencia_valor = Request["valor_referencia" + i]; if (string.IsNullOrEmpty(referencia_codigo) || string.IsNullOrEmpty(referencia_valor)) { // Significa que la agregaron y la eliminaron } else { sumaCostosReferencias += Convert.ToDecimal(referencia_valor); referencias_inven buscarReferenciasInvenOrigen = context.referencias_inven.FirstOrDefault(x => x.codigo == referencia_codigo && x.ano == DateTime.Now.Year && x.mes == DateTime.Now.Month && x.bodega == modelo.BodegaOrigen); if (buscarReferenciasInvenOrigen != null) { buscarReferenciasInvenOrigen.cos_ent = (!string.IsNullOrEmpty(buscarReferenciasInvenOrigen.cos_ent.ToString()) ? Convert.ToDecimal(buscarReferenciasInvenOrigen.cos_ent) : 0) + (!string.IsNullOrEmpty(referencia_valor) ? Convert.ToDecimal(referencia_valor) : 0); buscarReferenciasInvenOrigen.sub_cos = (!string.IsNullOrEmpty(buscarReferenciasInvenOrigen.sub_cos.ToString()) ? Convert.ToDecimal(buscarReferenciasInvenOrigen.sub_cos) : 0) + (!string.IsNullOrEmpty(referencia_valor) ? Convert.ToDecimal(referencia_valor) : 0); context.Entry(buscarReferenciasInvenOrigen).State = EntityState.Modified; } else { referencias_inven crearReferencia = new referencias_inven { bodega = modelo.BodegaOrigen, codigo = referencia_codigo, ano = (short)DateTime.Now.Year, mes = (short)DateTime.Now.Month, can_ini = 0, cos_ent = !string.IsNullOrEmpty(referencia_valor) ? Convert.ToDecimal(referencia_valor) : 0, sub_cos = !string.IsNullOrEmpty(referencia_valor) ? Convert.ToDecimal(referencia_valor) : 0, modulo = "R" }; context.referencias_inven.Add(crearReferencia); } lineas_documento crearLineasOrigen = new lineas_documento { codigo = referencia_codigo, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), nit = nitTraslado, bodega = modelo.BodegaOrigen, seq = sequ, estado = true, fec = DateTime.Now, costo_unitario = !string.IsNullOrEmpty(referencia_valor) ? Convert.ToDecimal(referencia_valor) : 0, id_encabezado = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0 }; context.lineas_documento.Add(crearLineasOrigen); sequ++; } } centro_costo centroValorCero = context.centro_costo.FirstOrDefault(x => x.pre_centcst == "0"); int idCentroCero = centroValorCero != null?Convert.ToInt32(centroValorCero.centcst_id) : 0; icb_terceros terceroValorCero = context.icb_terceros.FirstOrDefault(x => x.doc_tercero == "0"); int idTerceroCero = centroValorCero != null?Convert.ToInt32(terceroValorCero.tercero_id) : 0; int secuencia = 1; foreach (var parametro in parametrosCuentasVerificar) { cuenta_puc buscarCuenta = context.cuenta_puc.FirstOrDefault(x => x.cntpuc_id == parametro.cuenta); if (buscarCuenta != null) { if (parametro.id_nombre_parametro == 9 || parametro.id_nombre_parametro == 12) { mov_contable movNuevo = new mov_contable { id_encab = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.idencabezado : 0, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), idparametronombre = parametro.id_nombre_parametro, cuenta = parametro.cuenta, centro = parametro.centro, nit = 0, fec = DateTime.Now, seq = secuencia }; // La validacion se hace ya que cuando el parametro es 9 (es decir inventario) se invierte el credito con debito if (parametro.id_nombre_parametro == 12) { if (buscarCuenta.concepniff == 1) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.credito = sumaCostosReferencias; movNuevo.creditoniif = sumaCostosReferencias; //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.debitoniif = sumaCostosReferencias; // movNuevo.debito = sumaCostosReferencias; //} } if (buscarCuenta.concepniff == 4) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.creditoniif = sumaCostosReferencias; } //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.debitoniif = sumaCostosReferencias; //} if (buscarCuenta.concepniff == 5) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.credito = sumaCostosReferencias; } //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.debito = sumaCostosReferencias; //} } else { if (buscarCuenta.concepniff == 1) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.debitoniif = sumaCostosReferencias; movNuevo.debito = sumaCostosReferencias; //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.credito = sumaCostosReferencias; // movNuevo.creditoniif = sumaCostosReferencias; //} } if (buscarCuenta.concepniff == 4) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.debitoniif = sumaCostosReferencias; } //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.creditoniif = sumaCostosReferencias; //} if (buscarCuenta.concepniff == 5) { //if (buscarCuenta.mov_cnt.ToUpper().Contains("DEBITO")) //{ movNuevo.debito = sumaCostosReferencias; } //} //if (buscarCuenta.mov_cnt.ToUpper().Contains("CREDITO")) //{ // movNuevo.credito = sumaCostosReferencias; //} } if (buscarCuenta.manejabase) { movNuevo.basecontable = sumaCostosReferencias; } if (buscarCuenta.documeto) { movNuevo.documento = "1"; } if (buscarCuenta.tercero) { movNuevo.nit = nitTraslado; } movNuevo.detalle = "Sube costo de referencias"; secuencia++; DateTime fechaHoy = DateTime.Now; cuentas_valores buscar_cuentas_valores = context.cuentas_valores.FirstOrDefault(x => x.centro == parametro.centro && x.cuenta == parametro.cuenta && x.nit == movNuevo.nit && x.ano == fechaHoy.Year && x.mes == fechaHoy.Month); if (buscar_cuentas_valores != null) { buscar_cuentas_valores.ano = fechaHoy.Year; buscar_cuentas_valores.mes = fechaHoy.Month; buscar_cuentas_valores.cuenta = movNuevo.cuenta; buscar_cuentas_valores.centro = movNuevo.centro; //buscar_cuentas_valores.nit = movNuevo.nit ?? idTerceroCero; buscar_cuentas_valores.nit = movNuevo.nit; 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 { cuentas_valores crearCuentaValor = new cuentas_valores { ano = fechaHoy.Year, mes = fechaHoy.Month, cuenta = movNuevo.cuenta, centro = movNuevo.centro, //crearCuentaValor.nit = movNuevo.nit ?? idTerceroCero; 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); } } } try { int guardarLineasYMovimientos = context.SaveChanges(); if (guardarLineasYMovimientos > 0) { if (buscarGrupoConsecutivos != null) { List <icb_doc_consecutivos> numerosConsecutivos = context.icb_doc_consecutivos .Where(x => x.doccons_grupoconsecutivo == numeroGrupo).ToList(); foreach (icb_doc_consecutivos item in numerosConsecutivos) { item.doccons_siguiente = item.doccons_siguiente + 1; context.Entry(item).State = EntityState.Modified; } context.SaveChanges(); } TempData["mensaje"] = "El cambio de costo de la(s) referencia(s) se ha realizado correctamente con numero " + numeroConsecutivo; ViewBag.numDocumentoCreado = numeroConsecutivo; } } catch (Exception ex) { Exception sss = ex.InnerException; } } ListasDesplegables(); BuscarFavoritos(menu); return(View()); }
public ActionResult Crear(TpDocRegistroModel tipoDoc, int?menu) { //var bodegasSeleccionadas = Request["bodccs_cod"]; if (ModelState.IsValid) { //if (string.IsNullOrEmpty(bodegasSeleccionadas)) //{ // TempData["mensaje_error"] = "Debe asignar minimo una bodega!"; // ViewBag.sw = new SelectList(context.tp_doc_sw, "tpdoc_id", "Descripcion", tipo.sw); // ViewBag.bodccs_cod = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList(); // ViewBag.bodegasSeleccionadas = bodegasSeleccionadas; // return View(tipo); //} //var numeroSiguiente = Request["numeroConsecutivo"] != "" ? Convert.ToInt32(Request["numeroConsecutivo"]) : 0; //consulta si el registro esta en BD int nom = (from a in context.tp_doc_registros where a.prefijo == tipoDoc.prefijo || a.tpdoc_id == tipoDoc.tpdoc_id select a.tpdoc_nombre).Count(); if (nom == 0) { var tipoDoc2 = new tp_doc_registros { aplicaniff = tipoDoc.aplicaniff, baseica = tipoDoc.baseica, baseiva = tipoDoc.baseiva, baseret1 = tipoDoc.baseret1, baseret2 = tipoDoc.baseret2, baseretencion = tipoDoc.baseretencion, bodega = tipoDoc.bodega, concepto1 = tipoDoc.concepto1, concepto2 = tipoDoc.concepto2, consecano = tipoDoc.consecano, consecmes = tipoDoc.consecmes, prefijo = tipoDoc.prefijo, ret1 = tipoDoc.ret1, ret2 = tipoDoc.ret2, retencion = tipoDoc.retencion, retica = tipoDoc.retica, retiva = tipoDoc.retiva, sw = tipoDoc.sw, texto1 = tipoDoc.texto1, texto2 = tipoDoc.texto2, texto3 = tipoDoc.texto3, texto4 = tipoDoc.texto4, tipo = tipoDoc.tipo, tpdocid_licencia = tipoDoc.tpdocid_licencia, tpdocrazoninactivo = tipoDoc.tpdocrazoninactivo, tpdoc_estado = tipoDoc.tpdoc_estado, tpdoc_nombre = tipoDoc.tpdoc_nombre, }; if (tipoDoc.interno == true) { tipoDoc2.interno = true; tipoDoc2.doc_interno_asociado = tipoDoc.doc_interno_asociado; tipoDoc2.entrada_salida = tipoDoc.entrada_salida; } else { tipoDoc2.interno = false; } tipoDoc2.tpdocfec_creacion = DateTime.Now; tipoDoc2.tpdocuserid_creacion = Convert.ToInt32(Session["user_usuarioid"]); context.tp_doc_registros.Add(tipoDoc2); int guardar = context.SaveChanges(); if (guardar > 0) { tp_doc_registros ultimoPrefijo = context.tp_doc_registros.Where(x => x.tpdoc_id == tipoDoc2.tpdoc_id) .FirstOrDefault(); // Primero se agregan los conceptos en caso de que existan int conceptos1 = Convert.ToInt32(Request["numeroConcepto1"]); int conceptos2 = Convert.ToInt32(Request["numeroConcepto2"]); for (int i = 1; i <= conceptos1; i++) { string concepto = Request["conceptoUno" + i]; if (!string.IsNullOrEmpty(concepto)) { context.tpdocconceptos.Add(new tpdocconceptos { tipodocid = ultimoPrefijo.tpdoc_id, Descripcion = concepto, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }); } } for (int i = 1; i <= conceptos2; i++) { string concepto = Request["conceptoDos" + i]; if (!string.IsNullOrEmpty(concepto)) { context.tpdocconceptos2.Add(new tpdocconceptos2 { tipodocid = ultimoPrefijo.tpdoc_id, Descripcion = concepto, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }); } } //Se agregan los datos del usuario, una vez agregado se agregan las bodegas de ese usuario en la tabla bodega_usuario //if (!string.IsNullOrEmpty(bodegasSeleccionadas)) //{ // var grupo = context.grupoconsecutivos.OrderByDescending(x => x.id).FirstOrDefault(); // var numeroGrupo = grupo != null ? grupo.grupo + 1 : 1; // string[] bodegasId = bodegasSeleccionadas.Split(','); // foreach (var substring in bodegasId) // { // context.icb_doc_consecutivos.Add(new icb_doc_consecutivos // { // doccons_bodega = Convert.ToInt32(substring), // doccons_idtpdoc = ultimoPrefijo.tpdoc_id, // doccons_siguiente = numeroSiguiente, // doccons_feccreacion = DateTime.Now, // doccons_usucreacion = Convert.ToInt32(Session["user_usuarioid"]) // }); // context.grupoconsecutivos.Add(new grupoconsecutivos // { // bodega_id = Convert.ToInt32(substring), // documento_id = ultimoPrefijo.tpdoc_id, // grupo = numeroGrupo // }); // } // var guardarBodegas = context.SaveChanges(); //} context.SaveChanges(); TempData["mensaje"] = "El registro del nuevo prefijo de documento fue exitoso!"; return(RedirectToAction("Crear", new { id = tipoDoc.tpdoc_id, menu })); } } else { TempData["mensaje_error"] = "El registro que ingreso ya se encuentra, por favor valide!"; } } TempData["mensaje_vacio"] = "Campos vacios, por favor valide!"; ParametrosVista(); ViewBag.sw = new SelectList(context.tp_doc_sw.OrderBy(x => x.Descripcion), "tpdoc_id", "Descripcion", tipoDoc.sw); ViewBag.tipo = new SelectList(context.tp_doc_registros_tipo.OrderBy(x => x.descripcion), "id", "descripcion"); ViewBag.bodccs_cod = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList(); ViewBag.doc_interno_asociado = new SelectList(context.tp_doc_registros.Where(d => d.interno == true && d.tpdoc_estado == true), "tpdoc_id", "tpdoc_nombre", tipoDoc.doc_interno_asociado); //ViewBag.bodegasSeleccionadas = bodegasSeleccionadas; BuscarFavoritos(menu); return(View(tipoDoc)); }
public bool GuardarDatosConceptosYBodegas(tp_doc_registros tipo /*, string bodegasSeleccionadas*/) { // Primero se agregan los conceptos en caso de que existan int conceptos1 = Convert.ToInt32(Request["numeroConcepto1"]); int conceptos2 = Convert.ToInt32(Request["numeroConcepto2"]); //const string query = "DELETE FROM [dbo].[tpdocconceptos] WHERE [tipodocid]={0}"; //se comentarea la sentencia por que ya no se va a borrar la tabla //var rows = context.Database.ExecuteSqlCommand(query, tipo.tpdoc_id);//se comentarea la sentencia por que ya no se va a borrar la tabla try { for (int j = 1; j <= conceptos1; j++) { int idConcepto = Convert.ToInt32(Request["idconceptoUno" + j]); string concepto = Request["conceptoUno" + j]; int existe = context.encab_documento.Where(x => x.concepto == idConcepto).Count(); if (existe == 0) { tpdocconceptos coincidencia = context.tpdocconceptos.FirstOrDefault(x => x.tipodocid == tipo.tpdoc_id && x.Descripcion == concepto); if (coincidencia == null) { context.tpdocconceptos.Add(new tpdocconceptos { tipodocid = tipo.tpdoc_id, Descripcion = concepto, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }); } context.SaveChanges(); } } } catch (Exception) { return(false); throw; } //const string query2 = "DELETE FROM [dbo].[tpdocconceptos2] WHERE [tipodocid]={0}"; //var rows2 = context.Database.ExecuteSqlCommand(query2, tipo.tpdoc_id); try { for (int j = 1; j <= conceptos2; j++) { int idConcepto = Convert.ToInt32(Request["idconceptoDos" + j]); string concepto = Request["conceptoDos" + j]; int existe = context.encab_documento.Where(x => x.concepto == idConcepto).Count(); if (existe == 0) { tpdocconceptos coincidencia = context.tpdocconceptos.FirstOrDefault(x => x.tipodocid == tipo.tpdoc_id && x.Descripcion == concepto); if (coincidencia == null) { context.tpdocconceptos2.Add(new tpdocconceptos2 { tipodocid = tipo.tpdoc_id, Descripcion = concepto, fec_creacion = DateTime.Now, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]) }); } context.SaveChanges(); } } } catch (Exception) { return(false); throw; } return(true); #region Codigo comentado //Se agregan los datos del usuario, una vez agregado se agregan las bodegas de ese usuario en la tabla bodega_usuario //var numeroSiguiente = Request["numeroConsecutivo"] != "" ? Convert.ToInt32(Request["numeroConsecutivo"]) : 0; //if (!string.IsNullOrEmpty(bodegasSeleccionadas)) //{ // const string query3 = "DELETE FROM [dbo].[icb_doc_consecutivos] WHERE [doccons_idtpdoc]={0}"; // var rows3 = context.Database.ExecuteSqlCommand(query3, tipo.tpdoc_id); // var grupo = context.grupoconsecutivos.OrderByDescending(x => x.grupo).FirstOrDefault(); // var numeroGrupo = grupo != null ? grupo.grupo + 1 : 1; // const string query4 = "DELETE FROM [dbo].[grupoconsecutivos] WHERE [documento_id]={0}"; // var rows4 = context.Database.ExecuteSqlCommand(query4, tipo.tpdoc_id); // string[] bodegasId = bodegasSeleccionadas.Split(','); // foreach (var substring in bodegasId) // { // context.icb_doc_consecutivos.Add(new icb_doc_consecutivos // { // doccons_bodega = Convert.ToInt32(substring), // doccons_idtpdoc = tipo.tpdoc_id, // doccons_siguiente = numeroSiguiente, // doccons_feccreacion = DateTime.Now, // doccons_usucreacion = Convert.ToInt32(Session["user_usuarioid"]) // }); // context.grupoconsecutivos.Add(new grupoconsecutivos // { // bodega_id = Convert.ToInt32(substring), // documento_id = tipo.tpdoc_id, // grupo = numeroGrupo // }); // } // var guardarBodegas = context.SaveChanges(); //} #endregion }
public ActionResult update(int?id, int?menu) { //valida si el id es null if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tp_doc_registros tipo2 = context.tp_doc_registros.Find(id); if (tipo2 == null) { return(HttpNotFound()); } var tipo = new TpDocRegistroModel { aplicaniff = tipo2.aplicaniff, baseica = tipo2.baseica, baseiva = tipo2.baseiva, baseret1 = tipo2.baseret1, baseret2 = tipo2.baseret2, baseretencion = tipo2.baseretencion, bodega = tipo2.bodega, concepto1 = tipo2.concepto1, concepto2 = tipo2.concepto2, consecano = tipo2.consecano, consecmes = tipo2.consecmes, doc_interno_asociado = tipo2.doc_interno_asociado, entrada_salida = tipo2.entrada_salida != null?tipo2.entrada_salida.Value:false, interno = tipo2.interno, prefijo = tipo2.prefijo, ret1 = tipo2.ret1, ret2 = tipo2.ret2, retencion = tipo2.retencion, retica = tipo2.retica, retiva = tipo2.retiva, sw = tipo2.sw, texto1 = tipo2.texto1, texto2 = tipo2.texto2, texto3 = tipo2.texto3, texto4 = tipo2.texto4, tipo = tipo2.tipo, tpdocfec_actualizacion = tipo2.tpdocfec_actualizacion, tpdocfec_creacion = tipo2.tpdocfec_creacion, tpdocid_licencia = tipo2.tpdocid_licencia, tpdocrazoninactivo = tipo2.tpdocrazoninactivo, tpdocuserid_actualizacion = tipo2.tpdocuserid_actualizacion, tpdocuserid_creacion = tipo2.tpdocuserid_creacion, tpdoc_estado = tipo2.tpdoc_estado, tpdoc_id = tipo2.tpdoc_id, tpdoc_nombre = tipo2.tpdoc_nombre, }; //consulta el nombre de usuario creacion con el id, lo envia a la vista a traves de ViewBag users creator = context.users.Find(tipo.tpdocuserid_creacion); ViewBag.user_nombre_cre = creator.user_nombre + " " + creator.user_apellido; //consulta el nombre de usuario actualizacion con el id, lo envia a la vista a traves de ViewBag users modificator = context.users.Find(tipo.tpdocuserid_actualizacion); if (modificator != null) { ViewBag.user_nombre_act = modificator.user_nombre + " " + modificator.user_apellido; ViewBag.user_fec_act = modificator.userfec_actualizacion.ToString(); } ParametrosVista(); ViewBag.sw = new SelectList(context.tp_doc_sw.OrderBy(x => x.Descripcion), "tpdoc_id", "Descripcion", tipo.sw); ViewBag.tipo = new SelectList(context.tp_doc_registros_tipo.OrderBy(x => x.descripcion), "id", "descripcion"); ViewBag.doc_interno_asociado = new SelectList(context.tp_doc_registros.Where(d => d.interno == true && d.tpdoc_estado == true && d.tpdoc_id != tipo.tpdoc_id), "tpdoc_id", "tpdoc_nombre", tipo.doc_interno_asociado); //ViewBag.bodccs_cod = context.bodega_concesionario.OrderBy(x => x.bodccs_nombre).ToList(); //var buscarBodegas = from bodegas in context.icb_doc_consecutivos // where bodegas.doccons_idtpdoc == id // select new { bodegas.doccons_bodega }; //var bodegasString = ""; //var primera = true; //foreach (var item in buscarBodegas) //{ // if (primera) // { // bodegasString += item.doccons_bodega; // primera = !primera; // } // else // { // bodegasString += "," + item.doccons_bodega; // } //} //ViewBag.bodegasSeleccionadas = bodegasString; //var buscarConsecutivo = context.icb_doc_consecutivos.FirstOrDefault(x=>x.doccons_idtpdoc==id); //ViewBag.numeroConsecutivo = buscarConsecutivo != null ? buscarConsecutivo.doccons_siguiente : 0; BuscarFavoritos(menu); return(View(tipo)); }
public ActionResult Create(tencabcotizacion modelo, int?menu) { if (ModelState.IsValid) { long numeroConsecutivo = 0; ConsecutivosGestion gestionConsecutivo = new ConsecutivosGestion(); icb_doc_consecutivos numeroConsecutivoAux = new icb_doc_consecutivos(); tp_doc_registros buscarTipoDocRegistro = context.tp_doc_registros.FirstOrDefault(x => x.tpdoc_id == modelo.tipodoc); numeroConsecutivoAux = gestionConsecutivo.BuscarConsecutivo(buscarTipoDocRegistro, modelo.tipodoc, modelo.bodega); grupoconsecutivos grupoConsecutivo = context.grupoconsecutivos.FirstOrDefault(x => x.documento_id == modelo.tipodoc && x.bodega_id == modelo.bodega); if (numeroConsecutivoAux != null) { numeroConsecutivo = numeroConsecutivoAux.doccons_siguiente; } else { TempData["mensaje_error"] = "No existe un numero consecutivo asignado para este tipo de documento"; BuscarFavoritos(menu); return(View()); } modelo.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]); modelo.fecha_creacion = DateTime.Now; modelo.numero = (int)numeroConsecutivo; context.tencabcotizacion.Add(modelo); int guardar = context.SaveChanges(); if (guardar > 0) { tencabcotizacion buscarUltimoEncabezado = context.tencabcotizacion.OrderByDescending(x => x.id).FirstOrDefault(); int cantidadManoObra = Convert.ToInt32(Request["cantidadesManoObra"]); for (int i = 1; i <= cantidadManoObra; i++) { string operacion = Request["operacionManoObra" + i]; int cantidad = !string.IsNullOrEmpty(Request["cantidadManoObra" + i]) ? Convert.ToInt32(Request["cantidadManoObra" + i]) : 0; int tiempo = !string.IsNullOrEmpty(Request["tiempoManoObra" + i]) ? Convert.ToInt32(Request["tiempoManoObra" + i]) : 0; int iva = !string.IsNullOrEmpty(Request["ivaManoObra" + i]) ? Convert.ToInt32(Request["ivaManoObra" + i]) : 0; int descuento = !string.IsNullOrEmpty(Request["descuentoManoObra" + i]) ? Convert.ToInt32(Request["descuentoManoObra" + i]) : 0; int valor = !string.IsNullOrEmpty(Request["valorManoObra" + i]) ? Convert.ToInt32(Request["valorManoObra" + i]) : 0; int tarifa = !string.IsNullOrEmpty(Request["tarifaManoObra" + i]) ? Convert.ToInt32(Request["tarifaManoObra" + i]) : 0; if (operacion != null) { context.tcotdetallemanoobra.Add(new tcotdetallemanoobra { idencab = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0, operacion = operacion, cantidad = cantidad, porcendescto = descuento, porceniva = iva, tarifamanoobra = tarifa, tiempo = tiempo, Valor = valor }); } } int cantidadReferencias = Convert.ToInt32(Request["cantidadesReferencias"]); for (int i = 1; i <= cantidadReferencias; i++) { string codigo_referencia = Request["referencia" + i]; int cantidad = !string.IsNullOrEmpty(Request["cantidadReferencia" + i]) ? Convert.ToInt32(Request["cantidadReferencia" + i]) : 0; int valorUnitario = !string.IsNullOrEmpty(Request["valorUnitarioReferencia" + i]) ? Convert.ToInt32(Request["valorUnitarioReferencia" + i]) : 0; int iva = !string.IsNullOrEmpty(Request["ivaReferencia" + i]) ? Convert.ToInt32(Request["ivaReferencia" + i]) : 0; int descuento = !string.IsNullOrEmpty(Request["descuentoReferencia" + i]) ? Convert.ToInt32(Request["descuentoReferencia" + i]) : 0; int costo = !string.IsNullOrEmpty(Request["costoReferencia" + i]) ? Convert.ToInt32(Request["costoReferencia" + i]) : 0; if (codigo_referencia != null) { context.tcotdetallerepuesto.Add(new tcotdetallerepuesto { idencab = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0, ref_codigo = codigo_referencia, cantidad = cantidad, valorunitario = valorUnitario, porcen_iva = iva, porcen_dscto = descuento, costo_promedio = costo }); } } int cantidadToT = Convert.ToInt32(Request["cantidadesToT"]); for (int i = 1; i <= cantidadToT; i++) { string operacion = Request["operacionToT" + i]; string descripcion = Request["descripcionToT" + i]; int cantidad = !string.IsNullOrEmpty(Request["cantidadToT" + i]) ? Convert.ToInt32(Request["cantidadToT" + i]) : 0; int tiempo = !string.IsNullOrEmpty(Request["tiempoToT" + i]) ? Convert.ToInt32(Request["tiempoToT" + i]) : 0; int precio = !string.IsNullOrEmpty(Request["precioToT" + i]) ? Convert.ToInt32(Request["precioToT" + i]) : 0; int costo = !string.IsNullOrEmpty(Request["costoToT" + i]) ? Convert.ToInt32(Request["costoToT" + i]) : 0; int iva = !string.IsNullOrEmpty(Request["ivaToT" + i]) ? Convert.ToInt32(Request["ivaToT" + i]) : 0; int descuento = !string.IsNullOrEmpty(Request["descuentoToT" + i]) ? Convert.ToInt32(Request["descuentoToT" + i]) : 0; int proveedor = !string.IsNullOrEmpty(Request["proveedorToT" + i]) ? Convert.ToInt32(Request["proveedorToT" + i]) : 0; if (operacion != null) { context.tcotdetalletot.Add(new tcotdetalletot { idencab = buscarUltimoEncabezado != null ? buscarUltimoEncabezado.id : 0, cantidad = cantidad, operacion = operacion, descripcion = descripcion, tiempo = tiempo, precio = precio, costo = costo, porceniva = iva, porcendescto = descuento, proveedor = proveedor }); } } int guardarDetalles = context.SaveChanges(); if (guardarDetalles > 0) { // Actualiza los numeros consecutivos por documento int grupoId = grupoConsecutivo != null ? grupoConsecutivo.grupo : 0; System.Collections.Generic.List <icb_doc_consecutivos> gruposConsecutivos = context.icb_doc_consecutivos .Where(x => x.doccons_grupoconsecutivo == grupoId).ToList(); foreach (icb_doc_consecutivos grupo in gruposConsecutivos) { grupo.doccons_siguiente = grupo.doccons_siguiente + 1; context.Entry(grupo).State = EntityState.Modified; } context.SaveChanges(); TempData["mensaje"] = "El registro de la nueva cotizacion de taller fue exitosa!"; } else { TempData["mensaje_error"] = "Error de conexion con la base de datos, por favor valide..."; } } else { TempData["mensaje_error"] = "Error de conexion con la base de datos, por favor valide..."; } } ListasDesplegables(modelo); BuscarFavoritos(menu); return(View()); }