Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }