コード例 #1
0
        public string GenerarAnulacionComprobanteElectronicoPago(dto.ComprobanteAnulacionElectronicaRequest req)
        {
            string     URL_BASE = "http://13.68.199.98/wssCargaBajas/cargaBajas.asmx";
            string     url      = URL_BASE;
            WebRequest request  = WebRequest.Create(url);

            request.Method      = "POST";
            request.ContentType = "text/xml; charset=utf-8;";
            string postData = req.Xml;

            byte[] byteArray = Encoding.ASCII.GetBytes(postData);
            request.ContentLength = byteArray.Length;

            using (var writeStream = request.GetRequestStream())
            {
                writeStream.Write(byteArray, 0, byteArray.Length);
            }

            string responseFromServer = string.Empty;
            string CodigoError        = string.Empty;
            string Mensajes           = string.Empty;
            string TrackId            = string.Empty;

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                var          respuestita = response.GetResponseStream();
                StreamReader reader      = new StreamReader(respuestita);
                responseFromServer = reader.ReadToEnd();
                var xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(responseFromServer);
                CodigoError = xmlDoc.GetElementsByTagName("Codigo")[0].InnerText;
                Mensajes    = xmlDoc.GetElementsByTagName("Mensajes")[0].InnerText;
                TrackId     = xmlDoc.GetElementsByTagName("TrackId")[0].InnerText;
                var nombreArchivo = "Logs/" + req.Ruc + "_" + req.Serie + "_" + req.Folio + "_" + DateTime.Now.ToString("yyyy-MM-dd_HH_mm_ss") + ".log";
                System.IO.File.WriteAllText(nombreArchivo, Mensajes);
            }

            string respuesta = string.Empty;

            //if (CodigoError.IndexOf("Error") == -1)
            //{
            dto.ComprobanteByIdRequest requestComprobante = new dto.ComprobanteByIdRequest();
            requestComprobante.IdComprobante = req.IdComprobante;
            new app.Comprobante().AnularComprobante(req, 5);
            respuesta = "El documento ha sido procesado con exito";
            //}
            //else
            //{
            //    respuesta.Mensaje = "Ha ocurrido un problema con el envio del documento.\nInfo:" + Mensajes;
            //}

            return(respuesta);
        }
コード例 #2
0
        public void AnularComprobante(dto.ComprobanteAnulacionElectronicaRequest request, byte estado)
        {
            var comprobante = new dom.Comprobante().BuscarPorId(request.IdComprobante);

            comprobante.Estado        = estado;
            comprobante.MotiAnulacion = request.MotivoAnulacion;
            new dom.Comprobante().Modificar(comprobante);
            byte tipodete = 1;

            if (comprobante.ComprobanteTipoId == 7)
            {
                tipodete = 2;
            }
            var detalle = new dom.ComprobanteDetalles().Buscar(c => c.ComprobanteId == comprobante.Id).ToList();

            dato.Almacen objAlmacen;
            foreach (var item in detalle)
            {
                var producto = new dom.Producto().BuscarPorId(item.ProductoId);
                if (item.Tipo == 1)
                {
                    if (tipodete == 2)
                    {
                        if (producto.Stock - item.Cantidad > 0)
                        {
                            producto.Stock = producto.Stock - item.Cantidad;
                        }
                        else
                        {
                            producto.Stock = 0;
                        }
                    }
                    else
                    {
                        producto.Stock = producto.Stock + item.Cantidad;
                    }
                    new dom.Producto().Modificar(producto);
                    objAlmacen                = new dato.Almacen();
                    objAlmacen.Tipo           = tipodete;
                    objAlmacen.UsuarioId      = request.UsuarioId;
                    objAlmacen.ProductoId     = item.ProductoId;
                    objAlmacen.ProductoNombre = item.ProductoNombre;
                    objAlmacen.UnidadMedidaId = item.UnidadMedidaId;
                    objAlmacen.Cantidad       = (decimal)item.Cantidad;
                    objAlmacen.Fecha          = DateTime.Now;
                    objAlmacen.EmpresaId      = comprobante.EmpresaId;
                    objAlmacen.ComprobanteId  = comprobante.Id;
                    objAlmacen.Precio         = item.PrecioTotal;
                    new dom.Almacen().Adicionar(objAlmacen);
                }
            }
        }