public int?insertGnAdju(Gn_Adjun adjun) { DateTime date = DateTime.Now; StringBuilder sql = new StringBuilder(); sql.Append("INSERT INTO GN_ADJUN "); sql.Append(" (EMP_CODI,RAD_CONT,ADJ_CONT,ADJ_NOMB,AUD_ESTA,AUD_USUA,AUD_UFAC,ADJ_TIPO) "); sql.Append(" VALUES (@EMP_CODI,@RAD_CONT,@ADJ_CONT,@ADJ_NOMB,@AUD_ESTA,@AUD_USUA,@AUD_UFAC,@ADJ_TIPO) "); List <SQLParams> parametros = new List <SQLParams>(); parametros.Add(new SQLParams("EMP_CODI", adjun.emp_codi)); parametros.Add(new SQLParams("RAD_CONT", adjun.rad_cont)); parametros.Add(new SQLParams("ADJ_CONT", adjun.adj_cont)); parametros.Add(new SQLParams("ADJ_NOMB", adjun.adj_nomb)); //pendiente parametros.Add(new SQLParams("AUD_ESTA", "A")); parametros.Add(new SQLParams("AUD_USUA", adjun.aud_usua)); parametros.Add(new SQLParams("AUD_UFAC", DateTime.Now)); parametros.Add(new SQLParams("ADJ_TIPO", adjun.adj_tipo)); return(new DbConnection().Insert(sql.ToString(), false, parametros)); }
public Boolean newGnAdjun(int emp_codi, string pro_codi, int cont, string rad_tabl, byte[] file, string name, string usu_codi, string type = "S") { try { var insta = DAO_Gn_Insta.GetGnInsta(); Stream stream = new MemoryStream(file); string fileName = ""; switch (type) { case "S": /*consultar si ya existe algún registro para sacar el consecutivo, sino se busca consecutivo*/ int rad_cont = 0; Gn_Radju rad = new DAO_Gn_Radju().GetGnRadju(emp_codi, string.Concat(emp_codi, cont), pro_codi); if (rad != null) { rad_cont = rad.rad_cont; } else { var consec = new DAO_Gn_Conse().getGnConse(emp_codi); if (consec == 0) { throw new Exception(string.Format( "No se encontró consecutivo para la empresa {0} y código consecutivo {1}", emp_codi, "325")); } rad_cont = consec + 1; } int?r = null; if (rad == null) { //Primero guardamos en la tabla de adjuntos r = new DAO_Gn_Radju().InsertarGnRadju(new Gn_Radju() { rad_cont = rad_cont, rad_tabl = rad_tabl, pro_codi = pro_codi, rad_llav = string.Concat(emp_codi, cont), emp_codi = emp_codi }, usu_codi); if (r == null) { throw new Exception("Ha ocurrido un error al guardar el archivo adjunto"); } //Actualiza el gn conse //new DAO_Gn_Conse().updateGnConse(rad_cont, 325, double.Parse(string.Concat(emp_codi, cont))); } List <Gn_Adjun> adjunts = new DAO_Gn_Adjun().GetAdjun(emp_codi, rad_cont); int adj_cont = adjunts == null || !adjunts.Any() ? 1 : adjunts.Max(o => o.adj_cont) + 1; Gn_Adjun adjun = new Gn_Adjun(); adjun.rad_cont = rad_cont; adjun.adj_cont = adj_cont; adjun.adj_nomb = name; adjun.adj_tipo = "A"; adjun.aud_usua = usu_codi; adjun.emp_codi = emp_codi; r = new DAO_Gn_Adjun().insertGnAdju(adjun); if (r == null) { throw new Exception("Ha ocurrido un error al guardar el archivo adjunto"); } fileName = string.Format("{0}_{1}_{2}_{3}", rad_tabl, emp_codi, rad_cont, adj_cont); //System.IO.FileStream fs = new System.IO.FileStream(pathFile, System.IO.FileMode.Open, System.IO.FileAccess.Read); //System.IO.MemoryStream ms = new System.IO.MemoryStream(); //fs.CopyTo(ms); if (insta.par_adju == "F") { Digitalware.Apps.Utilities.TO.ActionResult result = FTPManager .FileUpload(stream, rad_tabl + "/" + fileName); if (!result.State) { throw new Exception(result.Message); } } if (insta.par_adju == "B") { //Consultamos si hay adjuntos para obtener el adj_cont List <Gn_AdJfi> adjfi = new DAO_Gn_AdJfi().GetAdjFi(emp_codi, rad_cont); adj_cont = adjfi == null || !adjfi.Any() ? 1 : adjfi.Max(j => j.adj_cont + 1); //byte[] fileAdj = FTPManager.DownloadFtp(pathFile, Path.GetFileNameWithoutExtension(pathFile)); // string hex = Helpers.ByteArrayToString(files[i].data); new DAO_Gn_AdJfi().insertGnAdjfi(new Gn_AdJfi { adj_cont = adj_cont, adj_file = file, rad_cont = rad_cont, emp_codi = emp_codi }, usu_codi); } return(true); case "W": int doc_cont = 1; List <Wf_Cdocu> filesExists = new DAO_Wf_Cdocu().GetWfCdocu(emp_codi, cont); if (filesExists != null && filesExists.Any()) { doc_cont = filesExists.Max(o => o.doc_cont) + 1; } fileName = string.Format("{0}_{1}_{2}_{3}", emp_codi, cont, doc_cont, name); if (insta.par_adju == "F" || insta.par_adju == "B") { var newWfCdocu = new DAO_Wf_Cdocu().insertWfCdocu(new Wf_Cdocu() { cas_cont = cont, doc_cont = doc_cont, doc_desc = name, emp_codi = emp_codi, aud_usua = usu_codi, doc_blob = file }); Digitalware.Apps.Utilities.TO.ActionResult result = FTPManager .FileUpload(stream, fileName, string.Format("WORKFLOW/{0}/{1}/WF_CDOCU/", emp_codi, DateTime.Now.Year)); if (!result.State) { throw new Exception(result.Message); } } return(true); default: return(false); } } catch (Exception ex) { throw new Exception(string.Format("Error insertando adjunto:{0}", ex.Message)); } }