public async System.Threading.Tasks.Task <JsonResult> EditImpu(GS_Detalles[] Models) { using (var tr = _db.Database.BeginTransaction()) { try { var idDoc = Models.First().Doc; GS_Documentos UpdateGSDocumento = _db.GS_Documentos.FirstOrDefault(p => p.ID == idDoc); UpdateGSDocumento.UsuImp = SesionLogin().Sigla; UpdateGSDocumento.Imputacion = DateTime.Now; _db.GS_Documentos.Add(UpdateGSDocumento); _db.Entry(UpdateGSDocumento).State = System.Data.Entity.EntityState.Modified; _db.GS_Detalles.AddRange(Models); await _db.SaveChangesAsync(); _db.pa_insCentralizacionDocumentos(idDoc); await _db.SaveChangesAsync(); tr.Commit(); } catch (Exception e) { tr.Rollback(); return(JsonError(e.Message)); } } return(JsonExito()); }
public ActionResult Edit(GS_Documentos model, int SaldoxAnticipo) { try { int idMD = model.ID; var docu_gs = _db.GS_Documentos.FirstOrDefault(x => x.ID == idMD); var auxTotal = docu_gs.Total; var dateAndTime = DateTime.Now; var dateMin = dateAndTime.Date; var dateMax = dateMin.AddMonths(1); if (model.PagUrg != null && (model.PagUrg < dateMin || model.PagUrg > dateMax)) { return(JsonError("La 'fecha limite' solo puede ser a partir de hoy y no mayor a un mes")); } else if (SaldoxAnticipo == auxTotal) { return(JsonError("el valor de 'Anticipo' no puede ser 0")); } else if (SaldoxAnticipo < 0) { return(JsonError("el valor de 'Saldo' no puede ser negativo")); } else { var FormaPago = model.FP; var ObSolPag = model.ObsSolPago; var FechaLimite = model.PagUrg; var Monto = SaldoxAnticipo; docu_gs.FP = null; docu_gs.ObsSolPago = ObSolPag; docu_gs.ObsPagRealizo = SaldoxAnticipo == 0 ? "SI" : null; docu_gs.PagUrg = FechaLimite; docu_gs.FechaSolPago = DateTime.Now; docu_gs.MontoPago = Monto; docu_gs.UsuSolPago = SesionLogin().Sigla; _db.Entry(docu_gs).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); return(JsonExitoMsg("Formulario")); } } catch (Exception e) { return(Json(ErrorService.LogError(e))); } }
public async System.Threading.Tasks.Task <JsonResult> EditDoc(GS_Documentos Model) { try { var modelEdit = _db.GS_Documentos.FirstOrDefault(p => p.ID == Model.ID); modelEdit.MovGlosa = Model.MovGlosa; modelEdit.CTDCod = Model.CTDCod; modelEdit.CPBMes = Model.CPBMes; modelEdit.CPBAño = Model.CPBAño; modelEdit.MovFv = Model.MovFv; _db.GS_Documentos.Add(modelEdit); _db.Entry(modelEdit).State = System.Data.Entity.EntityState.Modified; await _db.SaveChangesAsync(); return(JsonExito()); } catch (Exception e) { return(JsonError(e.Message)); } }
public ActionResult UpdateDoc(GS_Documentos model, HttpPostedFileBase files) { try { int id_ = model.ID; var docu_gs = _db.GS_Documentos.FirstOrDefault(x => x.ID == id_); //valida movRe y Año imputacion if (model.MovRe != null) { var fechaAux = model.MovRe; var fechVal = DateTime.Now; var fechaCom = DateTime.Parse("2014-01-01"); if (fechaAux < fechaCom || fechaAux > fechVal) { return(JsonError("La 'Fecha de Recepcion' es menor a 2014 o es mayor a la 'fecha actual' ")); } } else if (model.CPBAño != null) { var añoAux = Int32.Parse(model.CPBAño); int añoVal = DateTime.Now.Year; if (añoAux < 2010 || añoAux > añoVal) { return(JsonError("El 'Año de Imputacion' es menor a '2010' o es mayor a la 'fecha actual'")); } } //variables para controlar si se hizo alguna modificacion var numCentCtrl = docu_gs.NumCent; var folioFacCtrl = docu_gs.FolioSolFac; var movReCtrl = docu_gs.MovRe; var cpbMesCtrl = docu_gs.CPBMes; var cpbAñoCtrl = docu_gs.CPBAño; var ctdCodCtrl = docu_gs.CTDCod; var archivoCtrl = docu_gs.Archivo; var auxTip = docu_gs.CTDCod; string oldNumCent = docu_gs.NumCent.ToString(); docu_gs.NumCent = model.NumCent; docu_gs.FolioSolFac = model.FolioSolFac; docu_gs.MovRe = model.MovRe; docu_gs.CPBMes = model.CPBMes; docu_gs.CPBAño = model.CPBAño; docu_gs.CTDCod = model.CTDCod; string auxDoc = docu_gs.CodAux.ToString(); string numDoc = docu_gs.NumDocI.ToString(); string tipoDoc = docu_gs.CTDCod.ToString(); string nombre_docu = auxDoc + "-" + numDoc + "-" + tipoDoc + ".PDF"; string urlArchivo = docu_gs.Archivo; string ruta = @"P:\PSO\PROYECTOS IT\Impu Doc\Fac-Pro\"; var path = ruta + nombre_docu; docu_gs.Archivo = path; // se guarda la nueva ruta en archivo y urlArchivo guarda la anterior para hacer su posterior eliminacion... if (numCentCtrl == docu_gs.NumCent && folioFacCtrl == docu_gs.FolioSolFac && movReCtrl == docu_gs.MovRe && cpbMesCtrl == docu_gs.CPBMes && cpbAñoCtrl == docu_gs.CPBAño && ctdCodCtrl == docu_gs.CTDCod && archivoCtrl == docu_gs.Archivo && files == null) { return(JsonExitoMsg("SinCambios")); } else { if (oldNumCent != model.NumCent.ToString()) { ControlModNumComprobante(oldNumCent, model.NumCent.ToString()); } if (files == null && auxTip == model.CTDCod) { ControlUpdate(id_, docu_gs.CPBAño, docu_gs.CPBMes, docu_gs.FolioSolFac.ToString(), docu_gs.CTDCod, docu_gs.NumCent.ToString(), docu_gs.MovRe.ToString(), docu_gs.Archivo); _db.Entry(docu_gs).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); return(JsonExitoMsg("Actualizado")); } else if (files == null && auxTip != model.CTDCod) { if (ModelState.IsValid) { //guarda la instruccion en ctrl_accion ControlUpdate(id_, docu_gs.CPBAño, docu_gs.CPBMes, docu_gs.FolioSolFac.ToString(), docu_gs.CTDCod, docu_gs.NumCent.ToString(), docu_gs.MovRe.ToString(), docu_gs.Archivo); System.IO.File.Move(urlArchivo, path); _db.Entry(docu_gs).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); System.IO.File.Delete(urlArchivo); } else { return(JsonError("Modelo ingresado no valido")); } return(JsonExitoMsg("Actualizado")); } else { string auxExt = files.FileName; string ext = Path.GetExtension(auxExt).ToLower(); if (ext != ".pdf") { return(JsonError("No es compatible la extension del archivo. Solo Pdf")); } else { var data = new byte[files.ContentLength]; files.InputStream.Read(data, 0, files.ContentLength); using (var sw = new FileStream(path, FileMode.Create, FileAccess.ReadWrite)) { sw.Write(data, 0, data.Length); } if (ModelState.IsValid) { //guarda la instruccion en ctrl_accion ControlUpdate(id_, docu_gs.CPBAño, docu_gs.CPBMes, docu_gs.FolioSolFac.ToString(), docu_gs.CTDCod, docu_gs.NumCent.ToString(), docu_gs.MovRe.ToString(), docu_gs.Archivo); _db.Entry(docu_gs).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); if (urlArchivo != path) { System.IO.File.Delete(urlArchivo); } } else { return(JsonError("Modelo ingresado no valido")); } return(JsonExitoMsg("Actualizado")); } } } } catch (Exception e) { return(Json(ErrorService.LogError(e))); } }
public JsonResult Edit(GS_Documentos model, string Tipo, string emision, string vencimiento, HttpPostedFileBase file) { try { DateTime fechaEm, fechaVe; if (!DateTime.TryParse(emision, out fechaEm) || !DateTime.TryParse(vencimiento, out fechaVe)) { return(JsonError("formato de fecha no valido")); } //en caso que se ingrese un documento nuevo, retornara al mensaje que esta dentro del if... if (file != null && model.ID == 0) { string extension = Path.GetExtension(file.FileName); if (extension != ".pdf") { return(JsonError("Tipo de archivo incorrecto , Ingrese pdf")); } if (model.TCambio == 0) { return(JsonError("El tipo de cambio debe ser mayor a 0")); } string auxDoc = model.CodAux.ToString(); string numDoc = model.NumDocI.ToString(); string tipoDoc = model.CTDCod.ToString(); string nombre_docu = auxDoc + "-" + numDoc + "-" + tipoDoc + ".PDF"; string rutaG = @"\\atenea\puentesur\PSO\PROYECTOS IT\Impu Doc\Fac-Pro\"; string nuevo = Path.Combine(rutaG, nombre_docu); var data = new byte[file.ContentLength]; file.InputStream.Read(data, 0, file.ContentLength); GS_Documentos documento = new GS_Documentos(); documento.CPBAño = model.CPBAño; documento.CPBMes = model.CPBMes; documento.CodAux = model.CodAux; documento.CTDCod = model.CTDCod; documento.NumDocI = model.NumDocI; documento.MovFe = fechaEm; documento.MovFv = fechaVe; documento.VendCod = "1"; documento.MovGlosa = model.MovGlosa; documento.Neto = Tipo != "exento" ? model.Neto : 0; documento.Impu = Tipo != "exento" ? model.Impu : 0; documento.NetoSM = Tipo != "exento" ? Math.Abs((Math.Round(((Convert.ToDouble(model.Neto)) / Convert.ToDouble(model.TCambio)), 5))) : 0; documento.ImpuSM = Tipo != "exento" ? Math.Abs((Math.Round(((Convert.ToDouble(model.Impu)) / Convert.ToDouble(model.TCambio)), 5))) : 0; documento.Exento = model.Exento; documento.Total = model.Total; documento.NomAux = model.NomAux; documento.Archivo = nuevo; documento.Usu = SesionLogin().Nom; documento.CLIENTE = model.CLIENTE; documento.Creacion = DateTime.Now; documento.Scaneo = DateTime.Now; documento.ExentoSM = Math.Abs(Math.Round(((Convert.ToDouble(model.Exento)) / Convert.ToDouble(model.TCambio)), 5)); documento.TotalSM = Math.Abs((Math.Round(((Convert.ToDouble(model.Total)) / Convert.ToDouble(model.TCambio)), 5))); documento.TCambio = model.TCambio; documento.tst = null; documento.Entrega = null; documento.UsuEnt = null; documento.recep = null; documento.ting = "GS-SO"; documento.fcrea = DateTime.Now; documento.flingdoc = fechaVe; documento.folioint = null; documento.CabGlo = model.CabGlo; documento.MovRe = DateTime.Now; _db.GS_Documentos.Add(documento); _db.SaveChanges(); using (var sw = new FileStream(nuevo, FileMode.Create, FileAccess.Write)) { sw.Write(data, 0, data.Length); } return(JsonExitoMsg("documento guardado")); }///fin del create............. var movglosa = model.MovGlosa.Trim(); if (model.TCambio == 0) { return(JsonError("El tipo de cambio debe ser mayor a 0")); } var rutDocs = (from x in _db.Docs where x.ID == model.ID select new { rut = x.Rut }).FirstOrDefault(); ////verificar que el periodo no se encuentre cerrado //var i = (from clie in _db.Clientes where clie.Rut == rutDocs.rut select new { id = clie.ID }).FirstOrDefault(); //var quer = (from f in _db.GS_ctrl_cump where f.nulo == null && f.tipo == 3 && f.clasif == "R" && f.clie == i.id && (f.periodo.Value).Month == int.Parse(model.CPBMes) && (f.periodo.Value).Year == int.Parse(model.CPBAño) select f).Any(); // if (!quer) // { // return JsonError("El periodo de imputación se encuentra cerrado"); // } //var datos = (from x in _db.Clientes where x.Rut == rutDocs.rut select x).ToList(); var dat = _db.Clientes.FirstOrDefault(x => x.Rut == rutDocs.rut).Ruta.Split('\\').Last(); var rut_pro = model.CodAux; var num_doc = model.NumDocI.ToString(); //Verificar la existencia del documento en las tablas de GS var existe = (from gdoc in _db.GS_Documentos where gdoc.CodAux == model.CodAux && gdoc.NumDocI == model.NumDocI && gdoc.CTDCod == model.CTDCod && model.UsuEnt != null && model.Entrega != null select new { codaux = gdoc.CodAux, numdocI = gdoc.NumDocI, ctdcod = gdoc.CTDCod }).Any(); if (existe) { return(JsonError("Este Auxiliar ya tiene registrado,documento de este tipo y con este número en GS")); } //Verificar la existencia del documento en las tablas de softland List <SqlParameter> para = new List <SqlParameter>() { new SqlParameter("@Cliente", System.Data.SqlDbType.NVarChar) { Value = dat }, new SqlParameter("@Rut_proveedor", System.Data.SqlDbType.NVarChar) { Value = rut_pro }, new SqlParameter("@Tipo_Doc", System.Data.SqlDbType.NVarChar) { Value = model.CTDCod }, new SqlParameter("@Num_Doc", System.Data.SqlDbType.NVarChar) { Value = num_doc }, new SqlParameter("@counts", System.Data.SqlDbType.Int) { Value = 0 } }; var validar = PA_Almacenado(para, "PA_Valida_Existe_Documento"); if (validar == 1) { return(JsonError("Este Auxiliar ya tiene registrado, un documento de este tipo y con este numero en Softland ")); } string uparchivo = ""; var gsDocumento = _db.GS_Documentos.SingleOrDefault(p => p.ID == model.ID); if (file != null) { var rutaantig = gsDocumento.Archivo; if (model.Archivo != null) { //Borrar original System.IO.File.Delete(rutaantig); } //Generar archivo con el formato codaux+numdoc + tipodoc string auxDoc = model.CodAux.ToString(); string numDoc = model.NumDocI.ToString(); string tipoDoc = model.CTDCod.ToString(); string nombre_docu = auxDoc + "-" + numDoc + "-" + tipoDoc + ".PDF"; string rutaG = @"\\atenea\puentesur\PSO\PROYECTOS IT\Impu Doc\Fac-Pro\"; var nuevoarch = rutaG + nombre_docu; //Nueva Ruta archivo en la base de datos gsDocumento.Archivo = nuevoarch; var data = new byte[file.ContentLength]; file.InputStream.Read(data, 0, file.ContentLength); //Grabar nuevo using (var sw = new FileStream(nuevoarch, FileMode.Create, FileAccess.Write)) { sw.Write(data, 0, data.Length); } uparchivo = ", GS_Documentos.Archivo = " + model.Archivo; } gsDocumento.NumDocI = model.NumDocI; gsDocumento.CTDCod = model.CTDCod; gsDocumento.Neto = Tipo != "exento" ? model.Neto : 0; gsDocumento.Impu = Tipo != "exento" ? model.Impu : 0; gsDocumento.NetoSM = Tipo != "exento" ? (Math.Round(((Convert.ToDouble(model.Neto)) / Convert.ToDouble(model.TCambio)), 5)) : 0; gsDocumento.ImpuSM = Tipo != "exento" ? (Math.Round(((Convert.ToDouble(model.Impu)) / Convert.ToDouble(model.TCambio)), 5)) : 0; gsDocumento.Exento = model.Exento; gsDocumento.Total = model.Total; gsDocumento.TCambio = model.TCambio; gsDocumento.CPBAño = model.CPBAño; gsDocumento.CPBMes = model.CPBMes; gsDocumento.MovFv = fechaVe; gsDocumento.MovFe = fechaEm; gsDocumento.ExentoSM = (Math.Round(((Convert.ToDouble(model.Exento)) / Convert.ToDouble(model.TCambio)), 5)); gsDocumento.TotalSM = (Math.Round(((Convert.ToDouble(model.Total)) / Convert.ToDouble(model.TCambio)), 5)); gsDocumento.MovGlosa = movglosa; string sql = "UPDATE GS_Documentos SET GS_Documentos.NumDocI = " + model.NumDocI + ", GS_Documentos.CTDCod = " + model.CTDCod + ", GS_Documentos.Neto = " + model.Neto + ", GS_Documentos.Exento = " + model.Exento + ", GS_Documentos.Impu = " + model.Impu + ", GS_Documentos.Total = " + model.Total + ", GS_Documentos.TCambio = " + model.TCambio + ", GS_Documentos.CPBAño = " + model.CPBAño + ", GS_Documentos.CPBMes = " + model.CPBMes + ", GS_Documentos.MovFv = " + fechaVe + ", GS_Documentos.MovFe = " + fechaEm + ", GS_Documentos.MovGlosa = " + movglosa + uparchivo; registrarAccion(sql); _db.Entry(gsDocumento).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); return(JsonExito()); } catch (Exception ex) { ErrorService.LogError(ex); return(JsonError("Hubo un error.! " + ex.Message)); } }