예제 #1
0
        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());
        }
예제 #2
0
        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)));
            }
        }
예제 #3
0
        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)));
            }
        }
예제 #5
0
        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));
            }
        }