Пример #1
0
        public ActionResult Editar()
        {
            EmpresaConfig empresaConfig = _unitOfWork.EmpresaConfigRepository.ConsultarPorIdEmpresa(IdEmpresa);
            var           model         = Mapper.Map <EmpresaConfigEditarViewModel>(empresaConfig);

            model.TiposConferencia = new SelectList(_unitOfWork.TipoConferenciaRepository.RetornarTodos().Select(x => new SelectListItem
            {
                Value = x.IdTipoConferencia.GetHashCode().ToString(),
                Text  = x.Descricao,
            }), "Value", "Text");

            model.TiposEmpresa = new SelectList(_unitOfWork.EmpresaTipoRepository.RetornarTodos().Select(x => new SelectListItem
            {
                Value = x.IdEmpresaTipo.GetHashCode().ToString(),
                Text  = x.Descricao,
            }), "Value", "Text");

            model.DiaColeta = new SelectList(_unitOfWork.DiasDaSemanaRepository.RetornarTodos()
                                             .Where(x => x.IdDiasDaSemana != DiasDaSemanaEnum.Domingo && x.IdDiasDaSemana != DiasDaSemanaEnum.Sabado)
                                             .Select(x => new SelectListItem
            {
                Value = x.IdDiasDaSemana.GetHashCode().ToString(),
                Text  = x.Descricao,
            }), "Value", "Text");

            return(View(model));
        }
        public ActionResult Edit([Bind(Include = "EmpresaID,NombreEmpresa,RNC,NCF01_Proximo,NCF02_Proximo,NCF03_Proximo,NCF04_Proximo,NCF14_Proximo,NCF15_Proximo,TasaItbisActual,ArchivoLogo,ArchivoTipografia")] EmpresaConfig empresaConfig, HttpPostedFileBase archivo1, HttpPostedFileBase archivo2)
        {
            if (archivo1 != null)
            {
                string imgName  = Path.GetFileName(archivo1.FileName);
                string fisiPath = Server.MapPath("~/Content/Imagenes/" + imgName);
                archivo1.SaveAs(fisiPath);
                empresaConfig.ArchivoLogo = imgName;
            }

            if (archivo2 != null)
            {
                string imgName  = Path.GetFileName(archivo1.FileName);
                string fisiPath = Server.MapPath("~/Content/Imagenes/" + imgName);
                archivo1.SaveAs(fisiPath);
                empresaConfig.ArchivoTipografia = imgName;
            }

            if (ModelState.IsValid)
            {
                db.Entry(empresaConfig).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(empresaConfig));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            EmpresaConfig empresaConfig = db.EmpresaConfigs.Find(id);

            db.EmpresaConfigs.Remove(empresaConfig);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: Empresas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EmpresaConfig empresaConfig = db.EmpresaConfigs.Find(id);

            if (empresaConfig == null)
            {
                return(HttpNotFound());
            }
            return(View(empresaConfig));
        }
Пример #5
0
        public async Task ConsultarEmpresaIntegracao()
        {
            if (!Convert.ToBoolean(ConfigurationManager.AppSettings["IntegracaoSankhya_Habilitar"]))
            {
                return;
            }

            StringBuilder inner = new StringBuilder();

            inner.Append("INNER JOIN TGFEMP ON TSIEMP.CODEMP = TGFEMP.CODEMP ");
            inner.Append("LEFT JOIN TSIEND ON TSIEMP.CODEND = TSIEND.CODEND ");
            inner.Append("LEFT JOIN TSIBAI ON TSIEMP.CODBAI = TSIBAI.CODBAI ");
            inner.Append("LEFT JOIN TSICID ON TSIEMP.CODCID = TSICID.CODCID ");
            inner.Append("LEFT JOIN TSIUFS ON TSICID.UF = TSIUFS.CODUF");

            var where = "WHERE TSIEMP.AD_INTEGRARFWLOG = '1'";

            List <EmpresaIntegracao> empresasIntegracao = await IntegracaoSankhya.Instance.PreExecutarQuery <EmpresaIntegracao>(where.ToString(), inner.ToString());

            empresasIntegracao = empresasIntegracao.OrderBy("CodigoIntegracao", "ASC").ToList();

            foreach (var empInt in empresasIntegracao)
            {
                try
                {
                    ValidarDadosIntegracao(empInt);

                    bool empresaNova = false;

                    var           codEmp        = Convert.ToInt32(empInt.CodigoIntegracao);
                    EmpresaConfig empresaConfig = _unitOfWork.EmpresaConfigRepository.ConsultaPorCodigoIntegracao(codEmp);

                    if (empresaConfig == null)
                    {
                        empresaNova   = true;
                        empresaConfig = new EmpresaConfig
                        {
                            Empresa = new Empresa()
                        };
                    }

                    empresaConfig.Empresa.CodigoIntegracao = codEmp;
                    empresaConfig.Empresa.CEP          = empInt.CEP;
                    empresaConfig.Empresa.Ativo        = empInt.Ativo == "S" ? true : false;
                    empresaConfig.Empresa.Bairro       = empInt.Bairro;
                    empresaConfig.Empresa.Cidade       = empInt.Cidade;
                    empresaConfig.Empresa.CNPJ         = empInt.CNPJ;
                    empresaConfig.Empresa.Complemento  = empInt.Complemento;
                    empresaConfig.Empresa.Endereco     = empInt.Endereco;
                    empresaConfig.Empresa.Estado       = empInt.Estado;
                    empresaConfig.Empresa.NomeFantasia = empInt.NomeFantasia;
                    empresaConfig.Empresa.Numero       = empInt.Numero;
                    empresaConfig.Empresa.RazaoSocial  = empInt.RazaoSocial;
                    empresaConfig.Empresa.Sigla        = empInt.Sigla;
                    empresaConfig.Empresa.Telefone     = empInt.Telefone;
                    empresaConfig.Empresa.TelefoneSAC  = empInt.TelefoneSAC;
                    empresaConfig.IdEmpresaTipo        = empInt.EmpresaMatriz == empInt.CodigoIntegracao ? EmpresaTipoEnum.Matriz : EmpresaTipoEnum.Filial;

                    if (empresaNova)
                    {
                        _unitOfWork.EmpresaConfigRepository.Add(empresaConfig);
                    }
                    else
                    {
                        _unitOfWork.EmpresaRepository.Update(empresaConfig.Empresa);
                        _unitOfWork.SaveChanges();
                        _unitOfWork.EmpresaConfigRepository.Update(empresaConfig);
                    }

                    _unitOfWork.SaveChanges();

                    if (!string.IsNullOrEmpty(empInt.EmpresaMatriz) && !empInt.EmpresaMatriz.Equals(codEmp.ToString()))
                    {
                        var codEmpMatriz = Convert.ToInt32(empInt.EmpresaMatriz);
                        var empMatriz    = _unitOfWork.EmpresaRepository.Tabela().FirstOrDefault(f => f.CodigoIntegracao == codEmpMatriz);

                        if (empMatriz != null)
                        {
                            empresaConfig.IdEmpresaMatriz = empMatriz.IdEmpresa;
                            _unitOfWork.EmpresaConfigRepository.Update(empresaConfig);
                            _unitOfWork.SaveChanges();
                        }
                    }

                    Dictionary <string, string> campoChave = new Dictionary <string, string> {
                        { "CODEMP", empresaConfig.Empresa.CodigoIntegracao.ToString() }
                    };

                    await IntegracaoSankhya.Instance.AtualizarInformacaoIntegracao("Empresa", campoChave, "TSIEMP.AD_INTEGRARFWLOG", "0");
                }
                catch (Exception ex)
                {
                    _log.Error(string.Format("Erro na integração da Empresa: {0}.", empInt.CodigoIntegracao), ex);
                }
            }
        }
Пример #6
0
 public void Editar(EmpresaConfig empresaConfig)
 {
     _unitOfWork.EmpresaConfigRepository.Update(empresaConfig);
     _unitOfWork.SaveChanges();
 }
        // ****************************************************************
        //string buscar = TextoBuscar.ToUpper();
        //var ArtQuery =
        //    from art in db.InventarioArticulos
        //    where (art.Descripcion).Contains(buscar)
        //    select art;
        //    return View(ArtQuery.ToList());



        // Aqui se registra y genera la factura final
        public ActionResult RegistrarFactura(int?id)
        {
            String NombreEmpleado;

            NombreEmpleado = (String)Session["PersonalName"];
            if (FacturaRegistrada == false)
            {
                CalculaTotales(); // Siempre hacemos refresh de los totales
                MantieneDatosClientes();



                String tipo = (String)TempData.Peek("TipoNCF");


                // Incrementamos el NCFs Correspondiente
                EmpresaConfig empresa = new EmpresaConfig();
                empresa = db.EmpresaConfigs.SingleOrDefault(s => s.EmpresaID > 0);
                if (tipo == "01")
                {
                    NCF = String.Format("{0:00000000}", empresa.NCF01_Proximo);
                    NCF = "B01" + NCF;
                    empresa.NCF01_Proximo++;
                }
                else
                {
                    NCF = String.Format("{0:00000000}", empresa.NCF02_Proximo);
                    NCF = "B02" + NCF;
                    empresa.NCF02_Proximo++;
                }

                db.Entry(empresa).State = EntityState.Modified;
                db.SaveChanges();


                // Registramos Factura
                Venta venta = new Venta();
                venta.Id_Cliente = ID_Cliente;
                //venta.Id_Trabajador =  // confirmar donde esta este dato.
                venta.MontoDescuento = decimal.Parse("0.00");
                venta.MontoExento    = decimal.Parse("0.00");
                String Monto = String.Format("{0:F2}", TempData.Peek("Subtotal"));
                Monto = Monto.Replace('$', ' ');
                venta.MontoGravado = decimal.Parse(Monto);
                Monto                   = (String)TempData.Peek("Itbis");
                Monto                   = Monto.Replace('$', ' ');
                venta.MontoItbis        = decimal.Parse(Monto);
                venta.ComprobanteFiscal = NCF;
                venta.Fecha             = DateTime.Now;
                venta.Estatus           = true;
                venta.Correlativo       = "";
                venta.Igv               = decimal.Parse("0.00");
                venta.ComprobanteFiscal = NCF;
                db.Ventas.Add(venta);
                db.SaveChanges();
                int ID_Venta = venta.Id;  // VERIFICAR QUE AQUI YA TIENE NUMERO Ok verificado

                // Registramos Inventario
                InventarioArticulo   inventario    = new InventarioArticulo();
                DetalleMovInventario movInventario = new DetalleMovInventario();
                DetalleVenta         detalleVenta  = new DetalleVenta();


                // Por cada item en el carrito, rebajamos del inventario
                var query = (from a in ventasCarrito
                             select a).ToList();

                foreach (var item in query)
                {
                    // Buscamos Inventario
                    // Es nuevo en el carrito
                    var inv = (from art in db.InventarioArticulos

                               where art.Id_Articulo == item.Id_Articulo
                               select art).FirstOrDefault();

                    // Escribimos Movimiento en inventario
                    movInventario.Id_Articulo       = inv.Id_Articulo;
                    movInventario.Id_Ventas         = ID_Venta; //***************************** Depende de arriba
                    movInventario.Precio_Compra     = decimal.Parse("0.00");
                    movInventario.Precio_Venta      = (decimal)item.PrecioUnitarioVenta;
                    movInventario.Requisicion       = "";
                    movInventario.Stock_Inicial     = (int)inv.CantidadDisponible;
                    movInventario.Stock_Actual      = (int)(inv.CantidadDisponible - item.Cantidad);
                    movInventario.Estatus           = true;
                    movInventario.Fecha_produccion  = DateTime.Now;
                    movInventario.Fecha_vencimiento = DateTime.Now;
                    db.DetalleMovInventarios.Add(movInventario);
                    db.SaveChanges();

                    // Escribimos Movimiento en ventas
                    detalleVenta.Cantidad            = item.Cantidad;
                    detalleVenta.DescuentoVenta      = decimal.Parse("0.00");
                    detalleVenta.Estatus             = true;
                    detalleVenta.Id_Articulo         = item.Id_Articulo;
                    detalleVenta.Id_MovInventario    = movInventario.Id; // ***** VERIFICAR SI DESPUES DEL ADD ARRIBA YA TIENE ID(verificado)
                    detalleVenta.Id_Venta            = ID_Venta;
                    detalleVenta.PrecioUnitarioVenta = (decimal)item.PrecioUnitarioVenta;
                    detalleVenta.PrecioVenta         = (decimal)(item.PrecioUnitarioVenta * item.Cantidad);
                    db.DetalleVentas.Add(detalleVenta);
                    db.SaveChanges();

                    // Actualizamos Inventario
                    inv.CantidadDisponible = inv.CantidadDisponible - item.Cantidad;
                    db.Entry(inv).State    = EntityState.Modified;
                    db.SaveChanges();
                    FacturaRegistrada = true;
                }

                // Preparamos todo para la factura y dejamos que el view la haga.
                String Fecha = String.Format("{0:dd/MM/yyyy}", DateTime.Now);
                TempData["FECHAFACTURA"] = Fecha;
                TempData["VENDEDOR"]     = NombreEmpleado;
                TempData["METODOPAGO"]   = "-";
            }



            CalculaTotales(); // Siempre hacemos refresh de los totales
            MantieneDatosClientes();
            return(View(ventasCarrito));
        }
Пример #8
0
        public ResumoFinalizarConferenciaResponse ResumoFinalizarConferencia(long idLote, long idEmpresa, string userId)
        {
            EmpresaConfig          empresaConfig   = _uow.EmpresaConfigRepository.ConsultarPorIdEmpresa(idEmpresa);
            Lote                   lote            = _uow.LoteRepository.GetById(idLote);
            var                    itensNotaFiscal = _uow.NotaFiscalItemRepository.ObterItens(lote.IdNotaFiscal).GroupBy(g => g.IdProduto);
            List <LoteConferencia> itensConferidos = _uow.LoteConferenciaRepository.ObterPorId(idLote);
            var                    usuario         = _uow.PerfilUsuarioRepository.GetByUserId(userId);

            var response = new ResumoFinalizarConferenciaResponse
            {
                DataRecebimento       = lote.DataRecebimento.ToString("dd/MM/yyyy hh:mm:ss"),
                IdLote                = lote.IdLote,
                IdNotaFiscal          = lote.IdNotaFiscal,
                NumeroNotaFiscal      = string.Concat(lote.NotaFiscal.Numero, " - ", lote.NotaFiscal.Serie),
                QuantidadeVolume      = lote.QuantidadeVolume,
                RazaoSocialFornecedor = lote.NotaFiscal.Fornecedor.NomeFantasia,
                TipoConferencia       = empresaConfig.TipoConferencia.Descricao,
                NomeConferente        = usuario.Nome
            };

            foreach (var itemNota in itensNotaFiscal)
            {
                var    itensConferencia    = itensConferidos.Where(x => x.IdProduto == itemNota.Key);
                int    quantidadeNota      = itemNota.Sum(s => s.Quantidade);
                int    quantidadeDevolucao = itemNota.Sum(s => s.QuantidadeDevolucao);
                string referencia          = itemNota.First().Produto.Referencia;
                string descricao           = itemNota.First().Produto.Descricao;

                if (itensConferencia.Any())
                {
                    int quantidadeConferido    = itensConferencia.Sum(s => s.Quantidade);
                    int diferencaNotaConferido = quantidadeNota - quantidadeConferido;

                    var item = new ResumoFinalizarConferenciaItemResponse
                    {
                        Referencia          = referencia,
                        DescricaoProduto    = descricao,
                        QuantidadeConferido = quantidadeConferido,
                        QuantidadeDevolucao = quantidadeDevolucao,
                        QuantidadeNota      = quantidadeNota,
                        DivergenciaMais     = diferencaNotaConferido < 0 ? diferencaNotaConferido * -1 : 0,
                        DivergenciaMenos    = diferencaNotaConferido > 0 ? diferencaNotaConferido : 0
                    };

                    response.Itens.Add(item);
                }
                else
                {
                    var item = new ResumoFinalizarConferenciaItemResponse
                    {
                        Referencia          = referencia,
                        DescricaoProduto    = descricao,
                        QuantidadeConferido = 0,
                        QuantidadeDevolucao = quantidadeDevolucao,
                        QuantidadeNota      = quantidadeNota,
                        DivergenciaMais     = 0,
                        DivergenciaMenos    = quantidadeNota
                    };

                    response.Itens.Add(item);
                }
            }

            var itensForaNota = itensConferidos.Where(w => !itensNotaFiscal.Any(x => x.Key == w.IdProduto)).GroupBy(g => g.IdProduto);

            foreach (var itemForaNota in itensForaNota)
            {
                int quantidadeConferido = itemForaNota.Sum(s => s.Quantidade);
                int?quantidadeDevolucao = itemForaNota.Sum(s => s.QuantidadeDevolucao);

                var item = new ResumoFinalizarConferenciaItemResponse
                {
                    Referencia          = itemForaNota.First().Produto.Referencia,
                    DescricaoProduto    = itemForaNota.First().Produto.Descricao,
                    QuantidadeConferido = quantidadeConferido,
                    QuantidadeDevolucao = quantidadeDevolucao ?? 0,
                    QuantidadeNota      = 0,
                    DivergenciaMais     = quantidadeConferido,
                    DivergenciaMenos    = 0
                };

                response.Itens.Add(item);
            }

            return(response);
        }
Пример #9
0
 public Estimator(Cotizacion cotizacion)
 {
     cot    = cotizacion;
     config = cotizacion?.Empresa?.EmpresaConfig;
     Validate();
 }
Пример #10
0
        public ActionResult Editar(EmpresaConfigEditarViewModel model)
        {
            var empresaConfigGarantia = _unitOfWork.EmpresaConfigRepository.ConsultarPorIdEmpresa(model.IdEmpresaGarantia);

            if (empresaConfigGarantia == null)
            {
                ModelState.AddModelError(nameof(model.IdEmpresaGarantia), "Empresa Garantia não encontrada.");
            }

            if (model.IdEmpresa == model.IdEmpresaGarantia && !model.EmpresaFazGarantia)
            {
                ModelState.AddModelError(nameof(model.EmpresaFazGarantia), "A empresa editada não pode ser selecionada para Garantia, se não estiver marcada para fazer garantia.");
            }

            if (empresaConfigGarantia?.EmpresaFazGarantia == false)
            {
                ModelState.AddModelError(nameof(model.IdEmpresaGarantia), string.Format("A Empresa '{0}' não pode ser selecionada para Garantia, se não estiver marcada para fazer garantia.", model.NomeFantasiaEmpresaGarantia));
            }

            if (!string.IsNullOrEmpty(model.NomeLogoEtiqueta) && !model.NomeLogoEtiqueta.ToUpper().Contains(".GRF"))
            {
                ModelState.AddModelError(nameof(model.NomeLogoEtiqueta), $"Nome do logo deve ter a extensão '.GRF'.");
            }

            if (!string.IsNullOrEmpty(model.NomeLogoEtiqueta) && (model.NomeLogoEtiqueta.Length < 5 || !model.NomeLogoEtiqueta.Substring(model.NomeLogoEtiqueta.Length - 4, 4).ToUpper().Contains(".GRF")))
            {
                ModelState.AddModelError(nameof(model.NomeLogoEtiqueta), $"Nome do logo inválido'.");
            }

            if (!ModelState.IsValid)
            {
                model.TiposConferencia = new SelectList(_unitOfWork.TipoConferenciaRepository.RetornarTodos().Select(x => new SelectListItem
                {
                    Value = x.IdTipoConferencia.GetHashCode().ToString(),
                    Text  = x.Descricao,
                }), "Value", "Text");

                model.TiposEmpresa = new SelectList(_unitOfWork.EmpresaTipoRepository.RetornarTodos().Select(x => new SelectListItem
                {
                    Value = x.IdEmpresaTipo.GetHashCode().ToString(),
                    Text  = x.Descricao,
                }), "Value", "Text");

                model.DiaColeta = new SelectList(_unitOfWork.DiasDaSemanaRepository.RetornarTodos()
                                                 .Where(x => x.IdDiasDaSemana != DiasDaSemanaEnum.Domingo && x.IdDiasDaSemana != DiasDaSemanaEnum.Sabado)
                                                 .Select(x => new SelectListItem
                {
                    Value = x.IdDiasDaSemana.GetHashCode().ToString(),
                    Text  = x.Descricao,
                }), "Value", "Text");

                return(View(model));
            }

            if (!string.IsNullOrWhiteSpace(model.CNPJConferenciaAutomatica))
            {
                model.CNPJConferenciaAutomatica = Regex.Replace(model.CNPJConferenciaAutomatica, @"[^\d]", string.Empty);
            }

            EmpresaConfig empresaConfig = Mapper.Map <EmpresaConfig>(model);

            _empresaService.Editar(empresaConfig);

            Notify.Success(Resources.CommonStrings.RegisterEditedSuccessMessage);
            return(RedirectToAction("Editar"));
        }