Пример #1
0
        public bool update(ComprobanteDTO Comprobante)
        {
            using (var context = getContext())
            {
                try
                {
                    var row = context.Comprobante.Where(x => x.IdComprobante == Comprobante.IdComprobante).SingleOrDefault();
                    row.IdTipoComprobante = Comprobante.IdTipoComprobante;
                    row.IdTipoDocumento = Comprobante.IdTipoDocumento;
                    row.IdEntidadResponsable = Comprobante.IdEntidadResponsable;
                    row.IdEntidadResponsable2 = Comprobante.IdEntidadResponsable2;
                    row.IdMoneda = Comprobante.IdMoneda;
                    row.IdEmpresa = Comprobante.IdEmpresa;
                    row.NroDocumento = Comprobante.NroDocumento;
                    row.Monto = Comprobante.Monto;
                    row.IdArea = Comprobante.IdArea;
                    row.IdResponsable = Comprobante.IdResponsable;
                    row.IdCategoria = Comprobante.IdCategoria;
                    //row.IdProyecto = Comprobante.IdProyecto;
                    if (Comprobante.IdTipoComprobante == 1 || Comprobante.IdTipoComprobante == 3)
                    {
                        if (row.Proyecto.FirstOrDefault() != null && row.Proyecto.FirstOrDefault().IdProyecto != Comprobante.IdProyecto)
                        {
                            var zProyecto = row.Proyecto.FirstOrDefault();
                            row.Proyecto.Remove(zProyecto);
                            if (Comprobante.IdProyecto > 0)
                            {
                                var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                                row.Proyecto.Add(xProyecto);
                            }
                        }
                        else if (row.Proyecto.FirstOrDefault() == null)
                        {
                            var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                            row.Proyecto.Add(xProyecto);
                        }
                    }
                    else if(Comprobante.IdEntidadResponsable2 > 0)
                    {
                        if (row.Proyecto.FirstOrDefault() != null && row.Proyecto.FirstOrDefault().IdProyecto != Comprobante.IdProyecto)
                        {
                            var zProyecto = row.Proyecto.FirstOrDefault();
                            row.Proyecto.Remove(zProyecto);
                            if (Comprobante.IdProyecto > 0)
                            {
                                var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                                row.Proyecto.Add(xProyecto);
                            }
                        }
                        else if (row.Proyecto.FirstOrDefault() == null)
                        {
                            var xProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                            row.Proyecto.Add(xProyecto);
                        }
                    }
                        
                    row.FechaEmision = Comprobante.FechaEmision;
                    row.FechaConclusion = Comprobante.FechaConclusion;
                    row.Comentario = Comprobante.Comentario;
                    row.Estado = Comprobante.Estado;
                    row.IdHonorario = Comprobante.IdHonorario;
                    row.MontoSinIGV = Comprobante.MontoSinIGV;
                    row.TipoCambio = Comprobante.TipoCambio;
                    row.UsuarioCreacion = Comprobante.UsuarioCreacion;

                    var allmontos = from m in context.AreaPorComprobante
                                    where m.IdComprobante == row.IdComprobante
                                    select m;

                    foreach (var item in allmontos)
                    {
                        row.AreaPorComprobante.Remove(item);
                    }

                    foreach (var item in Comprobante.lstMontos)
                    {
                        AreaPorComprobante novo = new AreaPorComprobante();
                        novo.IdArea = item.IdArea;
                        novo.IdComprobante = row.IdComprobante;
                        novo.Monto = item.Monto;
                        row.AreaPorComprobante.Add(novo);
                    }

                    context.SaveChanges();
                    return true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
Пример #2
0
        public ActionResult AddComprobante(ComprobanteDTO dto)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            if (getCurrentUser().IdRol == 4) { return RedirectToAction("Comprobantes", "Admin"); }
            try
            {
                string sTipoComprobante = dto.IdTipoComprobante == 1 ? "Ingreso" : "Egreso";
                int TipoComprobante = 1; //Por defecto tipo de comprobante Ingreso
                if (dto != null)
                {
                    TipoComprobante = dto.IdTipoComprobante;
                    dto.lstMontos = (List<AreaPorComprobanteDTO>)TempData["AreasXMontos"] ?? new List<AreaPorComprobanteDTO>();
                }

                ComprobanteBL objBL = new ComprobanteBL();
                int nDocRepetido = objBL.repeatedNroDocumento(dto.IdEmpresa, dto.IdComprobante, dto.NroDocumento);

                if (dto.IdComprobante == 0)
                {
                    //Si el numero de documento se repite en los ingresos no permitir el registro
                    if (nDocRepetido > 0 && dto.IdTipoComprobante == 1)
                    {
                        switch (nDocRepetido)
                        {
                            case 1:
                                createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_DOCUMENTO_INGRESO_REPETIDO_1);
                                break;
                            case 3:
                                createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_DOCUMENTO_INGRESO_REPETIDO_3);
                                break;
                        }
                    }
                    else if (objBL.add(dto))
                    {
                        createResponseMessage(CONSTANTES.SUCCESS);
                        return RedirectToAction("Comprobantes" + sTipoComprobante, "Admin");
                    }
                }
                else if (dto.IdComprobante != 0)
                {
                    //Si el numero de documento se repite en los ingresos no permitir el registro
                    if (nDocRepetido > 0 && dto.IdTipoComprobante == 1)
                    {
                        switch (nDocRepetido)
                        {
                            case 1:
                                createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_DOCUMENTO_INGRESO_REPETIDO_1);
                                break;
                            case 3:
                                createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_DOCUMENTO_INGRESO_REPETIDO_3);
                                break;
                        }
                    }
                    else if (objBL.update(dto))
                    {
                        createResponseMessage(CONSTANTES.SUCCESS);
                        return RedirectToAction("Comprobantes" + sTipoComprobante, "Admin");
                    }
                    else
                    {
                        createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                    }

                }
                else
                {
                    createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
                }
            }
            catch (Exception e)
            {
                if (dto.IdComprobante != 0)
                    createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE);
                else createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE);
            }
            TempData["Comprobante"] = dto;
            return RedirectToAction("Comprobante", "Admin", new { id = dto.IdComprobante, idTipoComprobante = dto.IdTipoComprobante });
        }
Пример #3
0
        public bool add(ComprobanteDTO Comprobante)
        {
            using (var context = getContext())
            {
                try
                {
                    Comprobante nuevo = new Comprobante();
                    nuevo.IdTipoComprobante = Comprobante.IdTipoComprobante;
                    nuevo.IdTipoDocumento = Comprobante.IdTipoDocumento;
                    nuevo.IdEntidadResponsable = Comprobante.IdEntidadResponsable;
                    nuevo.IdEntidadResponsable2 = Comprobante.IdEntidadResponsable2;
                    nuevo.IdMoneda = Comprobante.IdMoneda;
                    nuevo.IdEmpresa = Comprobante.IdEmpresa;
                    nuevo.NroDocumento = Comprobante.NroDocumento;
                    nuevo.Monto = Comprobante.Monto;
                    nuevo.IdArea = Comprobante.IdArea;
                    nuevo.IdResponsable = Comprobante.IdResponsable;
                    nuevo.IdCategoria = Comprobante.IdCategoria;
                    //nuevo.IdProyecto = Comprobante.IdProyecto;
                    if(Comprobante.IdTipoComprobante == 1 || Comprobante.IdTipoComprobante == 3)
                    { 
                        if (Comprobante.IdProyecto > 0)
                        {
                            var pProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                            nuevo.Proyecto.Add(pProyecto);
                        }
                    }
                    else if(Comprobante.IdEntidadResponsable2 > 0)
                    {
                        if (Comprobante.IdProyecto > 0)
                        {
                            var pProyecto = context.Proyecto.Where(x => x.IdProyecto == Comprobante.IdProyecto).FirstOrDefault();
                            nuevo.Proyecto.Add(pProyecto);
                        }
                    }
                    nuevo.FechaEmision = Comprobante.FechaEmision;
                    nuevo.FechaConclusion = Comprobante.FechaConclusion;
                    nuevo.Comentario = Comprobante.Comentario;
                    nuevo.Estado = true;
                    nuevo.Ejecutado = false;
                    nuevo.IdHonorario = Comprobante.IdHonorario;
                    nuevo.MontoSinIGV = Comprobante.MontoSinIGV;
                    nuevo.TipoCambio = Comprobante.TipoCambio;
                    nuevo.UsuarioCreacion = Comprobante.UsuarioCreacion;
                    
                    context.Comprobante.Add(nuevo);

                    foreach (var item in Comprobante.lstMontos)
                    {
                        AreaPorComprobante novo = new AreaPorComprobante();
                        novo.IdArea = item.IdArea;
                        novo.IdComprobante = nuevo.IdComprobante;
                        novo.Monto = item.Monto;
                        nuevo.AreaPorComprobante.Add(novo);
                    }

                    context.SaveChanges();
                    return true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
Пример #4
0
        public ActionResult Comprobante(int? id = null, int? idTipoComprobante = null)
        {
            if (!this.currentUser()) { return RedirectToAction("Ingresar"); }
            ViewBag.Title = "Comprobante";

            int tipoComprobante = 1;
            if (idTipoComprobante != null) { tipoComprobante = idTipoComprobante.GetValueOrDefault(); }
            MenuNavBarSelected(3, tipoComprobante - 1);
            //MenuNavBarSelected(2);
            UsuarioDTO currentUser = getCurrentUser();
            EmpresaDTO empresa = (new EmpresaBL()).getEmpresa(currentUser.IdEmpresa);

            ComprobanteBL objBL = new ComprobanteBL();
            ViewBag.lstTipoDocumento = objBL.getTipoDeDocumentos();
            ViewBag.lstClientes = objBL.getListaClientesEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstProveedores = objBL.getListaProveedoresEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstMonedas = objBL.getListaMonedas();
            ViewBag.lstAreas = objBL.getListaAreasEnEmpresa(currentUser.IdEmpresa, false);
            ViewBag.lstResponsables = objBL.getListaResponsablesEnEmpresa(currentUser.IdEmpresa);
            ViewBag.lstHonorarios = objBL.getListaHonorariosEnEmpresa(currentUser.IdEmpresa);
            ViewBag.Proyectos = new List<ProyectoDTO>();
            ViewBag.Categorias = CategoriasBucle(empresa.IdEmpresa, (int)empresa.IdPeriodo, null, null);

            //Lista de Movimientos Asociados al comprobante
            ViewBag.lstMovimientos = objBL.getMovimientos_AsocComprobante(empresa.IdEmpresa, id.GetValueOrDefault());

            var objSent = TempData["Comprobante"];
            if (objSent != null) { TempData["Comprobante"] = null; return View(objSent); }

            ComprobanteDTO obj;
            if (id != null && id != 0)
            {
                obj = objBL.getComprobanteEnEmpresa((int)currentUser.IdEmpresa, (int)id);
                if (obj == null) return RedirectToAction("Comprobantes");
                if (obj.IdEmpresa != currentUser.IdEmpresa) return RedirectToAction("Comprobantes");
                obj.UsuarioCreacion = currentUser.IdUsuario;
                ViewBag.Montos = obj.lstMontos;

                //Movimientos asociados
                MovimientoBL objMov = new MovimientoBL();
                ViewBag.Movimientos = objMov.getMovimientos_Asoc_Comprobante(obj.IdComprobante);

                return View(obj);
            }
            obj = new ComprobanteDTO();
            obj.IdEmpresa = currentUser.IdEmpresa;
            obj.TipoCambio = (new EmpresaBL()).getEmpresa(currentUser.IdEmpresa).TipoCambio;
            obj.UsuarioCreacion = currentUser.IdUsuario;
            obj.FechaEmision = DateTime.Now;

            if (idTipoComprobante != null && idTipoComprobante != 0) obj.IdTipoComprobante = idTipoComprobante.GetValueOrDefault();
            return View(obj);
        }