예제 #1
0
 public void ModificarUnaOrden(OrdenCompra OC)
 {
     miDAO.ModificarOrden(OC);
     Control.ControlProductos CP = new ControlProductos();
     CP.ModificarStocksdeProductosdeUnaOrden(OC);
 }
        private void Guardar()
        {
            try
            {
                Sesion      sesion    = (Sesion)Session["Sesion" + Session.SessionID];
                OrdenCompra ordCompra = new OrdenCompra();
                ordCompra.Id_Emp = sesion.Id_Emp;
                ordCompra.Id_Cd  = sesion.Id_Cd_Ver;
                ordCompra.Id_Ord = 0;
                ordCompra.Id_Pvd = txtProveedor.Text == "" ? 0 : Convert.ToInt32(txtProveedor.Text);
                ordCompra.Id_U   = sesion.Id_U;
                //cuando se da de alta por el usuario el estatus siempre es M = Manual
                ordCompra.Ord_Estatus = "C";

                CapaDatos.Funciones funciones     = new CapaDatos.Funciones();
                DateTime            fechaServidor = funciones.GetLocalDateTime(sesion.Minutos);
                ordCompra.Ord_Fecha = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, fechaServidor.Hour, fechaServidor.Minute, fechaServidor.Second);

                ordCompra.Ord_Tipo  = 2; //1 = Manual, 2 = Automática
                ordCompra.Ord_Notas = "Orden generada automáticamente";

                List <OrdenCompraDet> listaPartidaTemp = new List <OrdenCompraDet>();
                OrdenCompraDet        ordenCompraDet;
                foreach (DataRow row in this.listaPartidas.Select("ordenado > 0"))
                {
                    ordenCompraDet                 = new OrdenCompraDet();
                    ordenCompraDet.Id_Emp          = sesion.Id_Emp;
                    ordenCompraDet.Id_Cd           = sesion.Id_Cd_Ver;
                    ordenCompraDet.Id_Ord          = 0; //se debe volver asignar cuando se guarda la orden de compra, cuando actualiza queda igual
                    ordenCompraDet.Id_OrdDet       = 0; //identity
                    ordenCompraDet.Id_Prd          = Convert.ToInt32(row["Id_Prd"]);
                    ordenCompraDet.Ord_Cantidad    = Convert.ToInt32(row["ordenado"]);
                    ordenCompraDet.Ord_CantidadGen = 0;
                    listaPartidaTemp.Add(ordenCompraDet);
                }
                // Create the query.
                IEnumerable <OrdenCompraDet> sortedStudents =
                    from Partida in listaPartidaTemp
                    orderby Partida.Id_Prd ascending
                    select Partida;

                List <OrdenCompraDet> listaPartida = new List <OrdenCompraDet>();
                foreach (OrdenCompraDet Partida2 in sortedStudents)
                {
                    listaPartida.Add(Partida2);
                }
                //Genera la orden de compra solo si la lista trae 1 o mas partidas
                if (listaPartida.Count > 0)
                {
                    ordCompra.ListOrdenCompra = listaPartida;
                    int verificador = 0;
                    new CN_CapOrdenCompra().InsertarOrdenCompra(ref ordCompra, sesion.Emp_Cnx, ref verificador);
                    Alerta("Se genero la orden de compra #" + verificador.ToString());
                    //actualiza grid por si hubo redondeo de partidas por multiplos
                    this.GetList();
                    rgOrdenCompra.Rebind();
                }
                else
                {
                    this.DisplayMensajeAlerta("ProOrdenCompraAuto_insert_NoPartidas");
                }

                txtId_PrdInicial_TextChanged(null, null);
                txtId_PrdFinal_TextChanged(null, null);
            }
            catch (Exception)
            {
                throw;
            }
        }
 public void Create(OrdenCompra entity)
 {
     this.ordenRepo.Create(entity);
 }
 public void Update(OrdenCompra entity)
 {
     this.ordenRepo.Update(entity);
 }
 public void Update(OrdenCompra entity)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public int registrarOrdenCompra(OrdenCompra p, BindingList <DetalleOrdenCompra> detalles)
 {
     return(accesoDatos.registrarOrdenCompra(p, detalles));
 }
예제 #7
0
        public ActionResult EnterWarehouse(OrdenCompra ordenCompra)
        {
            var errors = ModelState.Values.SelectMany(v => v.Errors);

            OrdenCompra OrdenCompraOriginal = db.Ordenes.Find(ordenCompra.ordenCompraId);


            DateTime     timeUtc                     = DateTime.UtcNow;
            TimeZoneInfo cstZone                     = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
            DateTime     cstTime                     = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
            var          estadoIngresoTotal          = db.EstadoOrdenes.Where(p => p.nombre == "Ingreso Total").SingleOrDefault();
            var          estadoIngresoParcial        = db.EstadoOrdenes.Where(p => p.nombre == "Ingreso Parcial").SingleOrDefault();
            var          estadoDetalleIngresoTotal   = db.EstadoOrdenDetalles.Where(p => p.nombre == "Atendido Total").SingleOrDefault();
            var          estadoDetalleIngresoParcial = db.EstadoOrdenDetalles.Where(p => p.nombre == "Atendido Parcial").SingleOrDefault();

            //1. Registra Estado Orden Ingreso Total
            //2. Registra Estado Orden Detalles Ingreso Total
            //3. Registra Estado Orden Ingreso Parcial
            //4. Registra Estado Orden Detalles Ingreso Parcial
            //5. Registra Ingreso documento
            //6. Actualiza Inventario en Almacén

            //Revisa detalles

            // Tabla Ingreso

            var ingreso                   = new Ingreso();
            var ingresosDetalle           = new List <IngresoDetalle>();
            var cantidadDetallesAtendidos = 0;

            //3 Atendido Total
            cantidadDetallesAtendidos = OrdenCompraOriginal.OrdenesCompraDetalles.Where(p => p.estadoOrdenDetalleId == 3).Count();



            // Actualiza estado de Requerimientos
            OrdenCompraOriginal.estadoOrdenId = estadoIngresoTotal.estadoOrdenId;

            foreach (var item in ordenCompra.OrdenesCompraDetalles)
            {
                foreach (var item2 in OrdenCompraOriginal.OrdenesCompraDetalles)
                {
                    if (item.ordenCompradetalleId == item2.ordenCompradetalleId)
                    {
                        var cantidadIngresados = 0;

                        cantidadIngresados = item2.IngresoDetalles.Sum(survey => survey.cantidad);

                        if ((item.cantidad + cantidadIngresados) == item2.cantidad)
                        {
                            item2.estadoOrdenDetalleId = estadoDetalleIngresoTotal.estadoOrdenDetalleId;
                        }
                        else
                        {
                            item2.estadoOrdenDetalleId        = estadoDetalleIngresoParcial.estadoOrdenDetalleId;
                            OrdenCompraOriginal.estadoOrdenId = estadoIngresoParcial.estadoOrdenId;
                        }

                        var ingresoDetalle = new IngresoDetalle();

                        ingresoDetalle.Ingreso              = ingreso;
                        ingresoDetalle.cantidad             = int.Parse(item.cantidad.ToString());
                        ingresoDetalle.ordenCompradetalleId = item.ordenCompradetalleId;
                        ingresoDetalle.avance = 0;

                        ingresosDetalle.Add(ingresoDetalle);

                        var materialNivelStock = new MaterialNivelStock();

                        materialNivelStock.almacenId  = OrdenCompraOriginal.Obra.Almacenes[0].almacenId;
                        materialNivelStock.cantidad   = materialNivelStock.cantidad + int.Parse(item.cantidad.ToString());
                        materialNivelStock.materialId = item2.materialId;
                        materialNivelStock.fechaStock = cstTime;
                        db.MaterialNivelStock.Add(materialNivelStock);
                    }
                }
            }

            ingreso.IngresoDetalles = ingresosDetalle;



            //var ordenes = db.Ordenes.Where(p => estadoList.Contains(p.EstadoOrden.nombre))


            if (ordenCompra.OrdenesCompraDetalles.Count + cantidadDetallesAtendidos != OrdenCompraOriginal.OrdenesCompraDetalles.Count)
            {
                OrdenCompraOriginal.estadoOrdenId = estadoIngresoParcial.estadoOrdenId;
            }
            // Fin Actualiza estado Requerimientos

            //Actualiza datos en Orden de Compra

            OrdenCompraOriginal.usuarioModificacion = User.Identity.Name;
            OrdenCompraOriginal.fechaModificacion   = cstTime;



            var ordenCompraEstado = new OrdenCompraEstadoOrden();

            ordenCompraEstado.OrdenCompra     = OrdenCompraOriginal;
            ordenCompraEstado.ordenCompraId   = ordenCompra.ordenCompraId;
            ordenCompraEstado.estadoOrdenId   = OrdenCompraOriginal.estadoOrdenId;
            ordenCompraEstado.usuarioCreacion = User.Identity.Name;
            ordenCompraEstado.fechaCreacion   = cstTime;
            //ordenCompraEstado.comentario = ordenCompra.comentario;


            ingreso.numeroGuia          = "guia";
            ingreso.OrdenCompra         = OrdenCompraOriginal;
            ingreso.ordenCompraId       = OrdenCompraOriginal.ordenCompraId;
            ingreso.usuarioCreacion     = User.Identity.Name;
            ingreso.fecha               = cstTime;
            ingreso.fechaCreacion       = cstTime;
            ingreso.fechaModificacion   = cstTime;
            ingreso.usuarioModificacion = User.Identity.Name;


            db.OrdenCompraEstadoOrden.Add(ordenCompraEstado);
            db.Ingresos.Add(ingreso);



            try
            {
                db.SaveChanges();
            }

            catch (DbEntityValidationException ex)
            {
                StringBuilder sb = new StringBuilder();

                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                        sb.AppendLine();
                    }
                }

                throw new DbEntityValidationException(
                          "Entity Validation Failed - errors follow:\n" +
                          sb.ToString(), ex
                          );
            }
            return(RedirectToAction("IndexApprove3"));
        }
예제 #8
0
        public static Response ProcesarOrdenCompra(OrdenCompra obj)
        {
            try
            {
                var comando = new SqlCommand();
                _conexion = AccesoDatos.Validar_Conexion("SisAsepba", ref _mensaje);
                if (_conexion == null)
                {
                    // mensaje = "Error al encontrar la conexion proporcionada";
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = "Error al encontrar la conexion proporcionada"
                    });
                }
                else
                {
                    AccesoDatos.Conectar(_conexion, ref _mensaje);

                    comando.Connection  = _conexion;
                    comando.CommandText = SpConexion;

                    comando.Parameters.AddWithValue("@@Accion", obj.Accion);
                    comando.Parameters.AddWithValue("@@IdOrdenCompra", obj.IdOrdenCompra);
                    comando.Parameters.AddWithValue("@@IdSocio", obj.IdSocio);
                    comando.Parameters.AddWithValue("@@IdProveedor", obj.IdProveedor);
                    comando.Parameters.AddWithValue("@@FechaEmision", obj.FechaEmision);
                    comando.Parameters.AddWithValue("@@Descripcion", obj.Descripcion);
                    comando.Parameters.AddWithValue("@@MontoTotal", obj.MontoTotal);
                    comando.Parameters.AddWithValue("@@NumeroFacturaProforma", obj.NumeroFacturaProforma);
                    comando.Parameters.AddWithValue("@@UsuarioCreacion", obj.UsuarioCreacion);
                    comando.Parameters.AddWithValue("@@FechaCreacion", obj.FechaCreacion);
                    comando.Parameters.AddWithValue("@@UsuarioModificacion", obj.UsuarioModificacion);
                    comando.Parameters.AddWithValue("@@FechaModificacion", obj.FechaModificacion);



                    var resultado = AccesoDatos.LlenarDataTable(comando, ref _mensaje);

                    //return string.IsNullOrEmpty(mensaje) ? Convert.ToBoolean(resultado.Rows[0][0] ) : false;
                    if (resultado == null || resultado.Rows.Count < 0)
                    {
                        return(new Response
                        {
                            IsSuccess = false,
                            Message = "Error a la hora de realizar la consulta"
                        });
                    }

                    return(new Response
                    {
                        IsSuccess = true,
                        Result = resultado.Rows[0][0]
                    });
                }
            }
            catch (Exception ex)
            {
                _mensaje = ex.Message;
                return(new Response
                {
                    IsSuccess = false,
                    Message = "Error a la hora de realizar la consulta, detalle del error: " + ex.Message
                });
            }
            finally
            {
                AccesoDatos.Desconectar(_conexion, ref _mensaje);
            }
        }
예제 #9
0
    private void llenaEntrada(Document documento, string folio)
    {
        object[] ejecutado = OrdenCompra.ordenDatos(folio);
        DataSet  data      = new DataSet();

        if (Convert.ToBoolean(ejecutado[0]))
        {
            data = (DataSet)ejecutado[1];
        }
        else
        {
            data = null;
        }
        iTextSharp.text.Font fuente1     = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 8, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuente2     = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 9, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuente3     = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        iTextSharp.text.Font fuente4     = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        PdfPTable            tablaEntDet = new PdfPTable(3);

        tablaEntDet.WidthPercentage = 60f;
        PdfPCell producto = new PdfPCell();
        PdfPCell productoCantidad = new PdfPCell();
        PdfPCell productoCostoUnit = new PdfPCell();
        PdfPCell productoImporte = new PdfPCell();
        PdfPCell categoria = new PdfPCell();
        PdfPCell totales = new PdfPCell();
        int      idCategoria = -1, contador = 0;
        string   categoriaDesc = "", categoriaDescNew = "";
        decimal  monto = 0, total = 0;

        foreach (DataRow row in data.Tables[0].Rows)
        {
            if (idCategoria == 0)
            {
                categoriaDesc = "Sin Categoria";
            }
            else
            {
                categoriaDesc = row[5].ToString();
            }
            if (categoriaDesc == "" || categoriaDesc != categoriaDescNew)
            {
                categoriaDescNew = row[5].ToString();
                try { idCategoria = Convert.ToInt32(row[4]); } catch (Exception) { idCategoria = 0; }
                categoria                     = new PdfPCell(new Phrase(categoriaDesc.ToUpper(), fuente4));
                categoria.Colspan             = 3;
                categoria.Padding             = 6;
                categoria.BorderWidth         = 0;
                categoria.HorizontalAlignment = 1;
                categoria.VerticalAlignment   = 1;
                tablaEntDet.AddCell(categoria);
                contador++;
            }

            producto                     = new PdfPCell(new Phrase(row[0].ToString() + "   " + row[7].ToString(), fuente3));
            producto.Colspan             = 3;
            producto.Padding             = 3;
            producto.BorderWidth         = 0;
            producto.HorizontalAlignment = 0;
            producto.VerticalAlignment   = 1;
            tablaEntDet.AddCell(producto);

            productoCantidad                     = new PdfPCell(new Phrase(row[1].ToString() + " (" + row[6].ToString() + ")", fuente1));
            productoCantidad.BorderWidth         = 0;
            productoCantidad.Padding             = 3;
            productoCantidad.HorizontalAlignment = 1;
            productoCantidad.VerticalAlignment   = 1;
            tablaEntDet.AddCell(productoCantidad);

            productoCostoUnit                     = new PdfPCell(new Phrase("$ " + row[2].ToString(), fuente1));
            productoCostoUnit.BorderWidth         = 0;
            productoCostoUnit.Padding             = 3;
            productoCostoUnit.HorizontalAlignment = 2;
            productoCostoUnit.VerticalAlignment   = 1;
            tablaEntDet.AddCell(productoCostoUnit);

            productoImporte                     = new PdfPCell(new Phrase("$ " + row[3].ToString(), fuente2));
            productoImporte.BorderWidth         = 0;
            productoImporte.Padding             = 3;
            productoImporte.HorizontalAlignment = 2;
            productoImporte.VerticalAlignment   = 1;
            tablaEntDet.AddCell(productoImporte);
            try { monto = Convert.ToDecimal(row[3].ToString()); } catch (Exception) { monto = 0; }
            total += monto;
        }
        for (int filas = 0; filas < 2; filas++)
        {
            totales                     = new PdfPCell(new Phrase(" ", fuente4));
            totales.Colspan             = 3;
            totales.Padding             = 3;
            totales.BorderWidth         = 0;
            totales.HorizontalAlignment = 1;
            totales.VerticalAlignment   = 1;
            tablaEntDet.AddCell(totales);
        }

        totales                     = new PdfPCell(new Phrase("COSTO DE COMPRAS DE CONTADO:", fuente4));
        totales.Colspan             = 3;
        totales.Padding             = 3;
        totales.BorderWidth         = 0;
        totales.HorizontalAlignment = 1;
        totales.VerticalAlignment   = 1;
        tablaEntDet.AddCell(totales);

        totales                     = new PdfPCell(new Phrase("", fuente4));
        totales.Colspan             = 3;
        totales.Padding             = 3;
        totales.BorderWidth         = 0;
        totales.HorizontalAlignment = 1;
        totales.VerticalAlignment   = 1;
        tablaEntDet.AddCell(totales);

        totales                     = new PdfPCell(new Phrase("$ " + total.ToString("F2"), fuente4));
        totales.Colspan             = 3;
        totales.Padding             = 3;
        totales.BorderWidth         = 0;
        totales.HorizontalAlignment = 1;
        totales.VerticalAlignment   = 1;
        tablaEntDet.AddCell(totales);
        documento.Add(tablaEntDet);
    }
예제 #10
0
        public ActionResult <OrdenCompra> Create(OrdenCompra articulo)
        {
            _ordenService.Create(articulo);

            return(CreatedAtRoute("GetOrden", new { id = articulo.Id.ToString() }, articulo));
        }
예제 #11
0
        private void OrdenCompra_CrearEnviaXML(int Id_Emp, int Id_Cd, int Id_Ord, DateTime fechaOrden, string Ord_EstatusStr)
        {
            try
            {
                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                //Consulta encabezado de la orden de compra
                OrdenCompra ordCompra = new OrdenCompra();
                ordCompra.Id_Emp = Id_Emp;
                ordCompra.Id_Cd  = Id_Cd;
                ordCompra.Id_Ord = Id_Ord;
                new CN_CapOrdenCompra().ConsultaOrdenCompra(ref ordCompra, sesion.Emp_Cnx);
                //Consulta detalle de la orden de compra
                List <OrdenCompraDet> listaOrdCompraDet = new List <OrdenCompraDet>();
                OrdenCompraDet        ordenCompraDet    = new OrdenCompraDet();

                ordenCompraDet.Id_Emp = Id_Emp;
                ordenCompraDet.Id_Cd  = Id_Cd;
                ordenCompraDet.Id_Ord = Id_Ord;
                new CN_CapOrdenCompraDet().ConsultaOrdenCompraDetalle_Lista(ordenCompraDet, sesion.Emp_Cnx, ref listaOrdCompraDet);

                //Consulta centro de distribución
                CentroDistribucion Cd = new CentroDistribucion();
                new CN_CatCentroDistribucion().ConsultarCentroDistribucion(ref Cd, ordCompra.Id_Cd, ordCompra.Id_Emp, sesion.Emp_Cnx);

                StringBuilder XML_Enviar = new StringBuilder();
                XML_Enviar.Append("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>");
                XML_Enviar.Append("<OrdenCompra");
                XML_Enviar.Append(" fecha=\"\"");
                XML_Enviar.Append(" ocnumsian=\"\"");
                XML_Enviar.Append(" oczonnumsian=\"\" >");

                XML_Enviar.Append(" <Encabezado");
                XML_Enviar.Append(" ocnumsian=\"\"");
                XML_Enviar.Append(" oczonnumsian=\"\"");
                XML_Enviar.Append(" octransian=\"\"");
                XML_Enviar.Append(" ocinvsian=\"\"");
                XML_Enviar.Append(" octotalsian=\"\"");
                XML_Enviar.Append(" oczoncpsian=\"\"");
                XML_Enviar.Append(" oczonlnum=\"\"");
                XML_Enviar.Append(" oczonedo=\"\"");
                XML_Enviar.Append(" oczoncd=\"\"");
                XML_Enviar.Append(" oczoncolsian=\"\"");
                XML_Enviar.Append(" oczoncallesian=\"\"");
                XML_Enviar.Append(" ocusunommacola=\"\"");
                XML_Enviar.Append(" ocusunummacola=\"\"");
                XML_Enviar.Append(" ocfechamacola=\"\"");

                XML_Enviar.Append(" ocfechasian=\"\"");
                XML_Enviar.Append(" ocusunomsian=\"\"");
                XML_Enviar.Append(" ocusunumsian=\"\"");
                XML_Enviar.Append(" oczondescsian=\"\"/>");
                XML_Enviar.Append("<Detalle>");

                var importe = 0.0;
                //PARTIDA DETALLE
                if (listaOrdCompraDet.Count() > 0)
                {
                    foreach (OrdenCompraDet ocd in listaOrdCompraDet)
                    {
                        importe = Math.Round(ocd.Ord_Cantidad * ocd.ProductoPrecio.Prd_Pesos, 2);
                        XML_Enviar.Append(" <Partida");
                        XML_Enviar.Append(" ocnumsian=\"" + ocd.Id_Ord + "\"");
                        XML_Enviar.Append(" oczonnumsian=\"" + ocd.Id_Cd + "\"");
                        XML_Enviar.Append(" ocimportesian=\"" + importe + "\"");
                        XML_Enviar.Append(" occantidadsian=\"" + ocd.Ord_Cantidad + "\"");
                        XML_Enviar.Append(" ocprocostosian=\"" + ocd.ProductoPrecio.Prd_Pesos + "\"");
                        XML_Enviar.Append(" ocprounidadsian=\"" + ocd.Producto.Prd_UniNe + "\"");
                        XML_Enviar.Append(" ocpropresensian=\"" + ocd.Producto.Prd_Presentacion + "\"");
                        XML_Enviar.Append(" ocprodescsian=\"" + ocd.Producto.Prd_Descripcion.ToString().Replace("\"", "").Replace("'", "").Replace("&", "")
                                          + "\"");
                        XML_Enviar.Append(" ocpronumsian=\"" + ocd.Id_Prd + "\"");
                        XML_Enviar.Append(" />");
                    }
                }



                XML_Enviar.Append(" </Detalle>");
                XML_Enviar.Append(" </OrdenCompra>");

                XmlDocument xml = new XmlDocument();

                xml.LoadXml(XML_Enviar.ToString());

                XmlNode OrdenCompra = xml.SelectSingleNode("OrdenCompra");
                OrdenCompra.Attributes["fecha"].Value        = string.Format("{0:s}", ordCompra.Ord_Fecha);
                OrdenCompra.Attributes["ocnumsian"].Value    = ordCompra.Id_Ord.ToString();
                OrdenCompra.Attributes["oczonnumsian"].Value = ordCompra.Id_Cd.ToString();


                XmlNode Cabecera = OrdenCompra.SelectSingleNode("Encabezado");

                Cabecera.Attributes["ocnumsian"].Value    = ordCompra.Id_Ord.ToString();
                Cabecera.Attributes["oczonnumsian"].Value = Cd.Id_Cd.ToString();
                Cabecera.Attributes["octransian"].Value   = Cd.Cd_NumMacola != null?Cd.Cd_NumMacola.ToString() : Cd.Id_Cd.ToString();

                Cabecera.Attributes["ocinvsian"].Value      = ordCompra.Id_Ord.ToString();
                Cabecera.Attributes["octotalsian"].Value    = "0";
                Cabecera.Attributes["oczoncpsian"].Value    = Cd.Cd_CP.ToString();
                Cabecera.Attributes["oczonlnum"].Value      = Cd.Cd_Numero.ToString();
                Cabecera.Attributes["oczonedo"].Value       = Cd.Cd_Descripcion;
                Cabecera.Attributes["oczoncd"].Value        = Cd.Cd_Descripcion.ToString();
                Cabecera.Attributes["oczoncolsian"].Value   = Cd.Cd_Colonia.ToString();
                Cabecera.Attributes["oczoncallesian"].Value = Cd.Cd_Calle.ToString();
                Cabecera.Attributes["ocusunommacola"].Value = "100";
                Cabecera.Attributes["ocusunummacola"].Value = "0";
                Cabecera.Attributes["ocfechamacola"].Value  = string.Format("{0:s}", ordCompra.Ord_Fecha);;
                Cabecera.Attributes["ocfechasian"].Value    = string.Format("{0:s}", ordCompra.Ord_Fecha);;
                Cabecera.Attributes["ocusunomsian"].Value   = Cd.Cd_Descripcion.ToString();
                Cabecera.Attributes["ocusunumsian"].Value   = ordCompra.Id_Pvd.ToString();
                Cabecera.Attributes["oczondescsian"].Value  = Cd.Cd_Descripcion.ToString();



                StringWriter  sw = new StringWriter();
                XmlTextWriter tx = new XmlTextWriter(sw);
                xml.WriteTo(tx);
                string xmlString = sw.ToString();

                //throw new Exception(sw.ToString());



                XmlDocument xmlOrdenCompra = new XmlDocument();


                OrdendeCompra.Service1 sianEnvioOrdendeCompra = new OrdendeCompra.Service1();


                object sianEnvioOrdendeCompraResult = sianEnvioOrdendeCompra.OrdenCompra(xmlString);

                // xmlOrdenCompra.LoadXml(sianEnvioOrdendeCompraResult.ToString());


                int verificador = 0;
                ordCompra.Id_Emp      = Id_Emp;
                ordCompra.Id_Cd       = Id_Cd;
                ordCompra.Id_Ord      = Id_Ord;
                ordCompra.Ord_Estatus = "I";
                new CN_CapOrdenCompra().ModificarOrdenCompra_Estatus(ordCompra, sesion.Emp_Cnx, ref verificador);

                try
                {
                    ordCompra.Ord_EstatusEmision = Convert.ToInt32(sianEnvioOrdendeCompraResult);
                }
                catch (FormatException e)
                {
                    ordCompra.Ord_EstatusEmision = 5;
                }


                ordCompra.Ord_EstatusEmisionStr = getEstatusEmision(ordCompra.Ord_EstatusEmision);

                new CN_CapOrdenCompra().ModificarOrdenCompra_EstatusEmision(ordCompra, sesion.Emp_Cnx, ref verificador);

                Alerta(getEstatusEmision(ordCompra.Ord_EstatusEmision));

                if (ordCompra.Ord_EstatusEmision == 1)
                {
                    this.OrdenCompra_Impresion(Id_Emp, Id_Cd, Id_Ord, fechaOrden, Ord_EstatusStr);
                }
                // RAM1.ResponseScripts.Add("Alert('" + sianEnvioOrdendeCompraResult.ToString() + "')");
            }
            catch (Exception ex)
            {
                this.EnviaEmail(ex.ToString());
                throw ex;
            }
        }
예제 #12
0
        private List <string> OrdenCompra_CrearURL_EnvioInternet(int Id_Emp, int Id_Cd, int Id_Ord)
        {
            try
            {
                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                //Consulta encabezado de la orden de compra
                OrdenCompra ordCompra = new OrdenCompra();
                ordCompra.Id_Emp = Id_Emp;
                ordCompra.Id_Cd  = Id_Cd;
                ordCompra.Id_Ord = Id_Ord;
                new CN_CapOrdenCompra().ConsultaOrdenCompra(ref ordCompra, sesion.Emp_Cnx);
                //Consulta detalle de la orden de compra
                List <OrdenCompraDet> listaOrdCompraDet = new List <OrdenCompraDet>();
                OrdenCompraDet        ordenCompraDet    = new OrdenCompraDet();

                ordenCompraDet.Id_Emp = Id_Emp;
                ordenCompraDet.Id_Cd  = Id_Cd;
                ordenCompraDet.Id_Ord = Id_Ord;
                new CN_CapOrdenCompraDet().ConsultaOrdenCompraDetalle_Lista(ordenCompraDet, sesion.Emp_Cnx, ref listaOrdCompraDet);

                //Consulta centro de distribución
                CentroDistribucion Cd = new CentroDistribucion();
                new CN_CatCentroDistribucion().ConsultarCentroDistribucion(ref Cd, ordCompra.Id_Cd, ordCompra.Id_Emp, sesion.Emp_Cnx);

                //construir URL
                List <string>             arregloURL = new List <string>();
                System.Text.StringBuilder URL        = new System.Text.StringBuilder();
                foreach (OrdenCompraDet ordComDet in listaOrdCompraDet)
                {
                    URL.Clear();
                    URL.Append(string.Concat("http://148.244.244.141/oc/SubeDetalleOC.asp?oczonnumsian=", Cd.Id_Cd.ToString()));
                    URL.Append(string.Concat("&ocnumsian=", ordCompra.Id_Ord.ToString()));
                    URL.Append(string.Concat("&ocpronumsian=", ordComDet.Producto.Id_Prd));
                    URL.Append(string.Concat("&ocprodescsian=", ordComDet.Producto.Prd_Descripcion));
                    URL.Append(string.Concat("&ocpropresensian=", ordComDet.Producto.Prd_Presentacion));
                    URL.Append(string.Concat("&ocprounidadsian=", ordComDet.Producto.Prd_UniNe));
                    URL.Append(string.Concat("&ocprocostosian=", ordComDet.ProductoPrecio.Prd_Pesos.ToString()));
                    URL.Append(string.Concat("&ocantidadsian=", ordComDet.Ord_Cantidad.ToString()));
                    URL.Append(string.Concat("&ocimportesian=", (ordComDet.Ord_Cantidad * ordComDet.ProductoPrecio.Prd_Pesos).ToString()));
                    arregloURL.Add(URL.ToString());
                }
                //Crear URL de datos de encabezado
                URL.Clear();
                URL.Append(string.Concat("http://148.244.244.141/oc/SubeFinalSuc.asp?oczonnumsian=", Cd.Id_Cd.ToString()));
                URL.Append(string.Concat("&oczondescsian=", Cd.Cd_Descripcion));
                URL.Append(string.Concat("&ocnumsian=", ordCompra.Id_Ord.ToString()));
                URL.Append(string.Concat("&ocusunumsian=", Cd.Cd_NumMacola != null ? Cd.Cd_NumMacola.ToString() : "0")); //"27868"
                URL.Append(string.Concat("&ocusunomsian=", Cd.Cd_Descripcion));
                URL.Append(string.Concat("&oczoncallesian=", Cd.Cd_Calle));
                URL.Append(string.Concat("&oczoncolsian=", Cd.Cd_Colonia));
                URL.Append(string.Concat("&oczoncd=", Cd.Cd_Ciudad));
                URL.Append(string.Concat("&oczonedo=", Cd.Cd_Estado));
                URL.Append(string.Concat("&oczonlnum=", Cd.Cd_Numero));
                URL.Append(string.Concat("&oczoncpsian=", Cd.Cd_CP));
                URL.Append(string.Concat("&octotalsian=0"));
                URL.Append(string.Concat("&ocinvsian=0"));
                URL.Append(string.Concat("&octransian=0"));
                arregloURL.Add(URL.ToString());

                return(arregloURL);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #13
0
        public ActionResult ShopCheckoutStep4(int id = 0)
        {
            OrdenCompra orden = db.OrdenCompra.Find(id);

            return(View(orden));
        }
예제 #14
0
        private void PrepararDatos(ref OrdenCompra ordenCompra)
        {
            var operacionDocumentos = OperacionDocumentoBL.Instancia.GetByOperacion(ordenCompra.IdOperacion);
            var tiposDocumentos     = ItemTablaBL.Instancia.GetByTabla((int)TipoTabla.TipoComprobante);
            var documentos          = new List <Comun>();

            foreach (var documento in operacionDocumentos)
            {
                var tipoDocumento = tiposDocumentos.FirstOrDefault(p => p.IdItemTabla == documento.TipoDocumento);
                documentos.Add(new Comun {
                    Id = documento.TipoDocumento, Nombre = tipoDocumento.Valor
                });
            }

            var sucursales  = SucursalBL.Instancia.GetAutorizadas(IdEmpresa, UsuarioActual.IdEmpleado);
            var direcciones = new List <Comun>();

            foreach (var sucursal in sucursales)
            {
                var ubigeo = UbigeoBL.Instancia.Single(sucursal.IdUbigeo);
                direcciones.Add(new Comun
                {
                    Id     = sucursal.IdSucursal,
                    Nombre = string.Format("{0} - {1}, {2}", sucursal.Nombre, sucursal.Direccion, ubigeo.Direccion)
                });
            }

            if (ordenCompra.IdTransaccion == 0)
            {
                var transaccionImpuesto = new List <TransaccionImpuesto>();
                var operacionImpuestos  = OperacionImpuestoBL.Instancia.GetByOperacion(ordenCompra.IdOperacion);

                foreach (var operacionImpuesto in operacionImpuestos)
                {
                    transaccionImpuesto.Add(new TransaccionImpuesto
                    {
                        IdImpuesto     = operacionImpuesto.IdImpuesto,
                        Secuencia      = operacionImpuesto.Orden,
                        Tasa           = operacionImpuesto.Impuesto.Monto,
                        NombreImpuesto = operacionImpuesto.Impuesto.Nombre,
                        EsEditable     = Convert.ToBoolean(operacionImpuesto.Impuesto.EsEditable)
                    });
                }

                ordenCompra.TransaccionImpuesto = transaccionImpuesto.OrderBy(p => p.Secuencia).ToList();
            }
            else
            {
                ordenCompra.TransaccionImpuesto = TransaccionImpuestoBL.Instancia.GetByTransaccion(ordenCompra.IdTransaccion);
            }
            ordenCompra.TiposCompra = new List <Comun>();
            ordenCompra.TiposCompra.Add(new Comun {
                Id = 0, Nombre = "--Seleccionar--"
            });
            ordenCompra.TiposCompra.Add(new Comun {
                Id = 1, Nombre = "Local"
            });
            ordenCompra.TiposCompra.Add(new Comun {
                Id = 2, Nombre = "Extranjera"
            });

            ordenCompra.Documentos      = documentos;
            ordenCompra.Direcciones     = direcciones;
            ordenCompra.Monedas         = MonedaBL.Instancia.GetAll();
            ordenCompra.CondicionesPago = ItemTablaBL.Instancia.ItemTablaToList((int)TipoTabla.CondicionPago);
            ordenCompra.Almacenes       = AlmacenBL.Instancia.GetByIdSucursal(IdSucursal);
        }
예제 #15
0
        public JsonResult Modificar(OrdenCompra ordenCompra)
        {
            var jsonResponse = new JsonResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    var ordenCompraOriginal = OrdenCompraBL.Instancia.Single(ordenCompra.IdTransaccion);

                    ordenCompraOriginal.IdPersona           = ordenCompra.IdPersona;
                    ordenCompraOriginal.IdAlmacen           = ordenCompra.IdAlmacen;
                    ordenCompraOriginal.FechaEntrega        = ordenCompra.FechaEntrega;
                    ordenCompraOriginal.Glosa               = ordenCompra.Glosa;
                    ordenCompraOriginal.IdEmpleado          = UsuarioActual.IdEmpleado;
                    ordenCompraOriginal.UsuarioCreacion     = UsuarioActual.IdEmpleado;
                    ordenCompraOriginal.UsuarioModificacion = UsuarioActual.IdEmpleado;
                    ordenCompraOriginal.MovimientoProducto  = new List <MovimientoProducto>();
                    ordenCompraOriginal.TransaccionImpuesto = new List <TransaccionImpuesto>();

                    var secuencia = 0;
                    foreach (var movimientoProducto in DetalleOrdenCompra)
                    {
                        movimientoProducto.Secuencia           = ++secuencia;
                        movimientoProducto.FechaRegistro       = ordenCompra.FechaDocumento;
                        movimientoProducto.IdAlmacen           = ordenCompra.IdAlmacen;
                        movimientoProducto.Estado              = (int)TipoEstadoTransaccion.Registrado;
                        movimientoProducto.FechaCreacion       = FechaCreacion;
                        movimientoProducto.FechaModificacion   = FechaModificacion;
                        movimientoProducto.UsuarioCreacion     = UsuarioActual.IdEmpleado;
                        movimientoProducto.UsuarioModificacion = UsuarioActual.IdEmpleado;

                        ordenCompraOriginal.MovimientoProducto.Add(movimientoProducto);
                    }

                    foreach (var impuesto in ordenCompra.TransaccionImpuesto)
                    {
                        impuesto.FechaCreacion       = FechaCreacion;
                        impuesto.FechaModificacion   = FechaModificacion;
                        impuesto.UsuarioCreacion     = UsuarioActual.IdEmpleado;
                        impuesto.UsuarioModificacion = UsuarioActual.IdEmpleado;

                        ordenCompraOriginal.TransaccionImpuesto.Add(impuesto);
                    }

                    var impuestoTotal = ordenCompra.TransaccionImpuesto.FirstOrDefault(p => p.IdImpuesto == (int)TipoImpuesto.Total);
                    if (impuestoTotal != null)
                    {
                        ordenCompraOriginal.MontoNeto = impuestoTotal.Valor;
                    }

                    OrdenCompraBL.Instancia.Actualizar(ordenCompraOriginal);

                    jsonResponse.Success = true;
                    jsonResponse.Message = "Se Proceso con exito.";
                }
                catch (Exception ex)
                {
                    jsonResponse.Message = ex.Message;
                }
            }
            else
            {
                jsonResponse.Message = "Por favor ingrese todos los campos requeridos";
            }
            return(Json(jsonResponse, JsonRequestBehavior.AllowGet));
        }