Пример #1
0
        public List <Remito> listarRemitos(Cliente cliente)
        {
            List <Remito>      listado     = new List <Remito>();
            AccesoDatosManager accesoDatos = new AccesoDatosManager();
            Remito             r;

            try
            {
                accesoDatos.setearConsulta("select r.numeroRemito,c.nombre,r.idCliente,r.fechaRemito,estado  from remitos as r inner join clientes as c on c.id = r.idcliente where r.idcliente=" + cliente.id + "and r.estado='No facturado' and r.activo=1");
                accesoDatos.abrirConexion();
                accesoDatos.ejecutarConsulta();
                while (accesoDatos.Lector.Read())
                {
                    r                = new Remito();
                    r.cliente        = new Cliente();
                    r.numeroRemito   = accesoDatos.Lector["numeroRemito"].ToString();
                    r.cliente.nombre = accesoDatos.Lector["nombre"].ToString();
                    r.fecha          = (DateTime)accesoDatos.Lector["fechaRemito"];
                    r.estado         = accesoDatos.Lector["estado"].ToString();

                    listado.Add(r);
                }

                return(listado);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                accesoDatos.cerrarConexion();
            }
        }
Пример #2
0
        public void agregarRemito(Remito nuevo)
        {
            SqlConnection conexion = new SqlConnection();
            SqlCommand    comando  = new SqlCommand();

            try
            {
                conexion.ConnectionString = AccesoDatosManager.cadenaConexion;
                comando.CommandType       = System.Data.CommandType.Text;
                //MSF-20190420: le agregué todas las columnas. Teniendo en cuenta inclusive lo que elegimos en el combo de selección..
                comando.CommandText  = "set dateformat 'dmy'";
                comando.CommandText  = "insert into REMITOS (idCliente,numeroRemito , fechaRemito,estado,activo) values";
                comando.CommandText += "('" + nuevo.cliente.id + "', '" + nuevo.numeroRemito + "', '" + nuevo.fecha.ToString("MM-dd-yyyy") + "', '" + nuevo.estado + "', '" + "1" + "')";
                comando.Connection   = conexion;
                conexion.Open();

                comando.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conexion.Close();
            }
        }
Пример #3
0
        private async Task sendEmailAsync(Pedido pedido, Remito remito)
        {
            var message = new MailMessage();

            message.To.Add(new MailAddress("*****@*****.**"));
            message.From    = new MailAddress("*****@*****.**");
            message.Subject = string.Format("[RECLAMO SIAH] El Remito nro {0} se encuentra con inconsistencias", remito.id);
            string body = string.Empty;

            using (StreamReader reader = new StreamReader(Server.MapPath("../Views/Shared/EmailReclamo.html")))
            {
                body = reader.ReadToEnd();
            }
            body = body.Replace("{remitoId}", remito.id.ToString());
            body = body.Replace("{pedidoId}", pedido.id.ToString());
            Hospital hospital = db.Hospitales.Find(pedido.hospitalId);

            body = body.Replace("{hospitalName}", hospital.nombre);
            //body = body.Replace("{tn}", pedido.trackingNumber.ToString());

            message.Body = body;

            message.IsBodyHtml = true;

            using (var smtp = new SmtpClient())
            {
                await smtp.SendMailAsync(message);
            }
        }
Пример #4
0
        public ActionResult ControlPedidoRemito(int id)
        {
            Remito remito = db.Remitos.Find(id);

            changeRemitoState(remito, 2);
            return(RedirectToAction("ListadoPedidos", "Remitos"));
        }
Пример #5
0
        private Remito changeRemitoState(Remito remito, int estadoId)
        {
            remito.estadoId        = estadoId;
            db.Entry(remito).State = EntityState.Modified;
            db.SaveChanges();

            return(remito);
        }
Пример #6
0
        private void ActualizarStockFarmacia(Remito remito)
        {
            var hospitalId = db.Pedidos.Where(p => p.id == remito.pedidoId).First().hospitalId;

            foreach (DetalleRemito item in remito.detallesRemito)
            {
                ActualizarItem(item, hospitalId, remito);
            }
        }
Пример #7
0
        //GET: Remitos/ControlPedidoRemito
        public ActionResult ControlPedidoRemito(int?id)
        {
            Remito remito            = db.Remitos.Find(id);
            Pedido pedido            = db.Pedidos.Find(id);
            var    tuplaPedidoRemito = new Tuple <Pedido, Remito>(pedido, remito);

            ViewBag.hospital = db.Hospitales.Include(hospital => hospital.nombre).Where(hospital => hospital.id == pedido.hospitalId).Select(r => new { hospital = r.nombre }).First().hospital;
            return(View(tuplaPedidoRemito));
        }
Пример #8
0
        public ActionResult ControlPedidoRemito(int id)
        {
            Remito remito = db.Remitos.Find(id);

            changeRemitoState(remito, 2);
            var detallesRemito = db.DetallesRemito.Where(dr => dr.remitoId == id).ToList();

            actualizarPresupuestoHospitalEntregaPedido(remito.pedidoId, detallesRemito);
            return(RedirectToAction("ListadoPedidos", "Remitos"));
        }
Пример #9
0
        public async Task <ActionResult> reclamar(int pedidoId)
        {
            Remito remito = db.Remitos.Find(pedidoId);
            Pedido pedido = db.Pedidos.Find(pedidoId);

            await sendEmailAsync(pedido, remito);

            changeRemitoState(remito, 3);

            return(RedirectToAction("ListadoPedidos"));
        }
Пример #10
0
        /// <summary>
        /// Anula un remito en Bd
        /// </summary>
        /// <param name="remito">Tipo remito</param>
        /// <returns>Devuelve si se actualiza o no</returns>
        public bool AnularRemito(Remito remito)
        {
            BTSDataContext BaseDeDatos    = new BTSDataContext();
            int            filasAFECTADAS = BaseDeDatos.AnularRemito(remito.NroRemito, remito.Estado);

            if (filasAFECTADAS > 0)
            {
                return(true);
            }

            return(false);
        }
Пример #11
0
 public bool AgregarRemito(Remito remito)
 {
     try
     {
         _context.Remitos.InsertOnSubmit(remito);
         _context.SubmitChanges();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Пример #12
0
        /// <summary>
        /// Inserta un Remito en Bd
        /// </summary>
        /// <param name="remito">Tipo Remito</param>
        /// <returns>Devuelve si se inserto o no</returns>
        public bool InsertarRemito(Remito remito)
        {
            BTSDataContext BaseDeDatos    = new BTSDataContext();
            int            filasAFECTADAS = BaseDeDatos.InsertarRemito(remito.Fecha, remito.NroPedido, remito.NroFactura,
                                                                       remito.Descripcion, remito.Notas, remito.Estado);

            if (filasAFECTADAS > 0)
            {
                return(true);
            }

            return(false);
        }
Пример #13
0
        // GET: Remitos/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Remito remito = db.Remitos.Find(id);

            if (remito == null)
            {
                return(HttpNotFound());
            }
            return(View(remito));
        }
Пример #14
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (listaDetalles.Count == 0)
            {
                MessageBox.Show("Debes ingresar al menos un producto");
                return;
            }
            if (txtnumeroRemito.Text.Trim() == "" || cboCliente.Text.Trim() == "")
            {
                MessageBox.Show("Debes completar todos los campos");
                return;
            }
            remitoNegocio      negocio            = new remitoNegocio();
            detalleNegocio     negociodetalle     = new detalleNegocio();
            tratamientoNegocio negociotratamiento = new tratamientoNegocio();

            try
            {
                if (remitoLocal == null)
                {
                    remitoLocal              = new Remito();
                    remitoLocal.fecha        = dtpRemito.Value;
                    remitoLocal.numeroRemito = txtnumeroRemito.Text;
                    remitoLocal.cliente      = (Cliente)cboCliente.SelectedItem;
                    remitoLocal.estado       = "No facturado";
                    remitoLocal.activo       = true;
                }
                negocio.agregarRemito(remitoLocal);
                foreach (Detalle item in listaDetalles)
                {
                    if (item.numeroCertificado == null)
                    {
                        negociodetalle.agregarDetalles(item, txtnumeroRemito.Text);
                    }

                    if (item.numeroCertificado != null)
                    {
                        negociodetalle.agregarDetalles(item, txtnumeroRemito.Text, item.numeroCertificado);
                        negociotratamiento.modificarCertificado(item.numeroCertificado, item.cantidadVendida);
                    }
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Пример #15
0
        // GET: Remitos/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Remito remito = db.Remitos.Find(id);

            if (remito == null)
            {
                return(HttpNotFound());
            }
            ViewBag.pedidoId = new SelectList(db.Pedidos, "id", "id", remito.pedidoId);
            return(View(remito));
        }
Пример #16
0
        public static List <Remito> Listar(Enumeraciones.Enumeraciones.ColumnasDocumentosComerciales pOrden)
        {
            List <Remito>           lstRemitos      = new List <Remito>();
            ViewRemitosTableAdapter objTableAdapter = new ViewRemitosTableAdapter();

            objTableAdapter.Connection.ConnectionString = BaseDatos.StringConexion;
            try
            {
                DataSetIntegrador.ViewRemitosDataTable objDataTable = null;
                switch (pOrden)
                {
                case Enumeraciones.Enumeraciones.ColumnasDocumentosComerciales.Cliente:
                    objDataTable = objTableAdapter.GetData();
                    break;

                case Enumeraciones.Enumeraciones.ColumnasDocumentosComerciales.FechaAscendente:
                    objDataTable = objTableAdapter.GetDataOrderByFechaAsc();
                    break;

                case Enumeraciones.Enumeraciones.ColumnasDocumentosComerciales.FechaDescendente:
                    objDataTable = objTableAdapter.GetDataOrderByFechaDesc();
                    break;

                default:
                    throw new Exception("Parámetro inválido.");
                }
                foreach (DataSetIntegrador.ViewRemitosRow objRow in objDataTable)
                {
                    Remito objRemito = new Remito();
                    objRemito.Id             = objRow.Id;
                    objRemito.FechaEntrega   = objRow.FechaEntrega;
                    objRemito.Numero         = objRow.Numero;
                    objRemito.Fecha          = objRow.Fecha;
                    objRemito.Cliente        = objRow.Cliente;
                    objRemito.Direccion      = objRow.Direccion;
                    objRemito.CondicionIVA   = objRow.CondicionIVA;
                    objRemito.CondicionVenta = objRow.CondicionVenta;
                    objRemito.Detalle        = ListarItems(objRow.Id);
                    lstRemitos.Add(objRemito);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(lstRemitos);
        }
Пример #17
0
        public void eliminarRemito(Remito modificar)
        {
            AccesoDatosManager accesoDatos = new AccesoDatosManager();

            try
            {
                modificar.activo = false;
                accesoDatos.setearConsulta("update Remitos Set activo=@ACTIVO Where numeroRemito=" + modificar.numeroRemito.ToString());
                accesoDatos.Comando.Parameters.Clear();
                accesoDatos.Comando.Parameters.AddWithValue("@ACTIVO", modificar.activo);
                accesoDatos.abrirConexion();
                accesoDatos.ejecutarAccion();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                accesoDatos.cerrarConexion();
            }
        }
Пример #18
0
        public void modificarRemitos(Remito modificar, string numeroFactura, string estado)
        {
            AccesoDatosManager accesoDatos = new AccesoDatosManager();

            try
            {
                accesoDatos.setearConsulta("update REMITOS Set numeroFactura=@numeroFactura,estado=@estado Where numeroRemito=" + modificar.numeroRemito);
                accesoDatos.Comando.Parameters.Clear();
                accesoDatos.Comando.Parameters.AddWithValue("@numeroFactura", numeroFactura);
                accesoDatos.Comando.Parameters.AddWithValue("@estado", estado);
                accesoDatos.abrirConexion();
                accesoDatos.ejecutarAccion();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                accesoDatos.cerrarConexion();
            }
        }
Пример #19
0
        private void ActualizarItem(DetalleRemito item, int hospitalId, Remito remito)
        {
            StockFarmacia insumo = db.StockFarmacias.Where(p => p.hospitalId == hospitalId &&
                                                           p.insumoId == item.insumoId).First();

            if (insumo != null)
            {
                insumo.stockFarmacia   = insumo.stockFarmacia + item.cantidadEntregada;
                db.Entry(insumo).State = EntityState.Modified;

                agregarHistoricoFarmacia(item, insumo.stockFarmacia, remito, hospitalId);
            }
            else
            {
                var newStock = new StockFarmacia();
                newStock.hospitalId    = hospitalId;
                newStock.insumoId      = item.insumoId;
                newStock.stockFarmacia = item.cantidadEntregada;
                db.StockFarmacias.Add(newStock);

                agregarHistoricoFarmacia(item, insumo.stockFarmacia, remito, hospitalId);
            }
        }
Пример #20
0
        public void modificarRemito(Remito modificar)
        {
            AccesoDatosManager accesoDatos = new AccesoDatosManager();

            try
            {
                accesoDatos.setearConsulta("update REMITOS Set id=@idCliente cuit=@CUIT, fecha=@fechaRemito, numeroRemito=@numeroRemito Where Id=" + modificar.id.ToString());
                accesoDatos.Comando.Parameters.Clear();
                accesoDatos.Comando.Parameters.AddWithValue("@idCliente", modificar.cliente.id);
                accesoDatos.Comando.Parameters.AddWithValue("@fechaRemito", modificar.fecha.ToString("MM-dd-yyyy"));
                accesoDatos.Comando.Parameters.AddWithValue("@numeroRemito", modificar.numeroRemito);
                accesoDatos.abrirConexion();
                accesoDatos.ejecutarAccion();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                accesoDatos.cerrarConexion();
            }
        }
Пример #21
0
 private void toolStripButtonCerrarVenta_Click(object sender, EventArgs e)
 {
     if (ClienteSeleccionado != null && this.dataGridViewPedido.RowCount > 0)
     {
         Factura objFactura = new Factura();
         objFactura.Tipo           = Properties.Settings.Default.TipoFactura;
         objFactura.Numero         = this.NumeroFactura();
         objFactura.Fecha          = DateTime.Now.Date;
         objFactura.Cliente        = this.labelNombreClienteSeleccionado.Text;
         objFactura.Direccion      = this.labelDireccionClienteSeleccionado.Text;
         objFactura.CondicionIVA   = this.comboBoxCondicionIVA.Text;
         objFactura.CondicionVenta = this.comboBoxCondicionVenta.Text;
         objFactura.Detalle        = admCompras.Items;
         Remito objRemito = new Remito();
         objRemito.Numero         = this.NumeroRemito();
         objRemito.Fecha          = DateTime.Now.Date;
         objRemito.FechaEntrega   = DateTime.Now.Date.AddDays(2);
         objRemito.Cliente        = this.labelNombreClienteSeleccionado.Text;
         objRemito.Direccion      = this.labelDireccionClienteSeleccionado.Text;
         objRemito.CondicionIVA   = this.comboBoxCondicionIVA.Text;
         objRemito.CondicionVenta = this.comboBoxCondicionVenta.Text;
         objRemito.Detalle        = admCompras.Items;
         admDocumentosComerciales.Generar(objFactura, objRemito);
         this.ActualizarNumerosDocumentosComerciales();
         this.HabilitarPedido(false);
         admCompras.Cancelar();
         this.dataGridViewPedido.DataSource = null;
         this.labelTotal.Text = "Total: " + admCompras.Total.ToString("c");
         this.ListarFacturas();
         this.ListarRemitos();
     }
     else
     {
         MessageBox.Show("Debe seleccionar un cliente y al menos un producto antes de cerrar la venta.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
Пример #22
0
        public ActionResult CargarRemito(Remito remito)
        {
            if (!db.Pedidos.Where(p => p.id.Equals(remito.pedidoId)).Any())
            {
                string errorValue = "El numero de pedido ingresado no existe en el sistema.";
                var    result     = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8");
                HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(result);
            }

            var listaItems = db.DetallesPedido
                             .Where(d => d.pedidoId == remito.pedidoId)
                             .Select(x => new
            {
                insumoId       = x.insumoId,
                cantAutorizada = x.cantidadAutorizada
            }).ToList();

            if (listaItems.Count != remito.detallesRemito.Count)
            {
                string errorValue = "La cantidad de insumos ingresadas no corresponde con la cantidad de insumos pedidos.";
                var    result     = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8");
                HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(result);
            }

            remito.id       = remito.pedidoId;
            remito.estadoId = 1;

            foreach (DetalleRemito detalle in remito.detallesRemito)
            {
                var item = listaItems.Find(l => l.insumoId == detalle.insumoId);

                if (item == null)
                {
                    string errorValue = "El insumoId: " + detalle.insumoId + " no existe para el número de pedido ingresado.";
                    var    result     = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8");
                    HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(result);
                }
                else if (detalle.cantidadEntregada < 0)
                {
                    string errorValue = "El insumoId: " + detalle.insumoId + " posee una canidad incorrecta.";
                    var    result     = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8");
                    HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(result);
                }

                detalle.remitoId = remito.id;
            }

            try
            {
                db.Remitos.Add(remito);
                db.SaveChanges();
                ActualizarStockSiahConDetallesRemito(remito.id, remito.fechaEntregaEfectiva);
                ActualizarStockFarmacia(remito);
                ActualizarPedido(remito.pedidoId);

                string acceptValue = "La peticion fue exitosa.";
                var    result      = Content(JsonConvert.SerializeObject(new { message = acceptValue }), "application/json; charset=utf-8");
                HttpContext.Response.StatusCode = (int)HttpStatusCode.Accepted;
                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
                string acceptValue = "El remito ya se encuentra cargado.";
                var    result      = Content(JsonConvert.SerializeObject(new { error = acceptValue }), "application/json; charset=utf-8");
                HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(result);
            }
        }
Пример #23
0
        private void agregarHistoricoFarmacia(DetalleRemito detalleRemito, int saldo, Remito remito, int hospitalId)
        {
            HistoricoFarmacia historicoFarmacia = new HistoricoFarmacia();

            historicoFarmacia.insumoId        = detalleRemito.insumoId;
            historicoFarmacia.hospitalId      = hospitalId;
            historicoFarmacia.fechaMovimiento = DateTime.UtcNow;
            historicoFarmacia.descripcion     = "Se recibió una entrega del ministerio. Remito número: " + remito.pedidoId;
            historicoFarmacia.saldo           = saldo;
            historicoFarmacia.isNegative      = false;
            historicoFarmacia.cantidad        = detalleRemito.cantidadEntregada;

            db.HistoricoFarmacia.Add(historicoFarmacia);
        }
Пример #24
0
        public List <Remito> getRemitos(bool sincronizado)
        {
            using (connection = new SqlConnection(connectionStringCrm))
            {
                List <Remito> listado = new List <Remito>();

                query = "sp_remitos_crm_tango";

                command             = new SqlCommand(query, connection);
                command.CommandType = CommandType.StoredProcedure;

                SqlParameter paramSincronizado = new SqlParameter();
                paramSincronizado.ParameterName = "@Sincronizado";
                paramSincronizado.SqlDbType     = SqlDbType.Bit;
                paramSincronizado.SqlValue      = sincronizado;

                command.Parameters.Add(paramSincronizado);

                try
                {
                    connection.Open();

                    SqlDataReader reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        Remito rem;

                        if (listado.Exists(r => r.nroRemito.Equals(reader["NroRemito"])))
                        {
                            if (!listado.Exists(r => r.movimientoEncId == Convert.ToInt32(reader["MovimientoEncId"])))
                            {
                                rem = listado.FirstOrDefault(r => r.nroRemito.Equals(reader["NroRemito"]));
                                rem.movimientoEncId = Convert.ToInt32(reader["MovimientoEncId"]);

                                List <RemitoItem> items = getItems(Convert.ToInt32(reader["MovimientoEncID"]));

                                //rem.total = 0;

                                foreach (RemitoItem item in items)
                                {
                                    rem.agregarItem(item);
                                    //rem.total = rem.total + (item.cantidad * item.precio);
                                }
                            }
                        }
                        else
                        {
                            rem = new Remito();

                            ClienteDao clienteDao = new ClienteDao();

                            rem.remitoId        = Convert.ToInt32(reader["RemitoID"]);
                            rem.movimientoEncId = Convert.ToInt32(reader["MovimientoEncId"]);
                            rem.fecha           = Convert.ToDateTime(reader["Fecha"]);
                            rem.nroRemito       = Convert.ToString(reader["NroRemito"]);
                            rem.cliente         = clienteDao.getCliente(Convert.ToInt32(reader["ClienteID"]));
                            rem.items           = getItems(Convert.ToInt32(reader["MovimientoEncID"]));

                            foreach (RemitoItem item in rem.items)
                            {
                                //rem.total = rem.total + (item.cantidad * item.precio);
                            }

                            listado.Add(rem);
                        }
                    }

                    return(listado);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
Пример #25
0
 public static void Generar(Factura pFactura, Remito pRemito)
 {
     dbFacturas.Generar(pFactura);
     dbRemitos.Generar(pRemito);
 }
Пример #26
0
 public frmagRemito(Remito remito)
 {
     InitializeComponent();
 }
Пример #27
0
        private void GrabarRemito()
        {
            try
            {
                //Crea Carpeta SystemDocumentsCooperativa.
                CreateFolder();
                //Copia el Remito Electronico en dicha direccion.
                CopyFile();

                var ordenVenta = Context.OrdenVenta
                                 .Where(x => x.Id == OrdenVentaId)
                                 .FirstOrDefault();

                if (ordenVenta != null)
                {
                    Remito remito;
                    remito              = new Remito();
                    remito.Id           = Guid.NewGuid();
                    remito.NumOperacion = ordenVenta.NumOperacion;
                    remito.NumOrden     = ordenVenta.NumOrden;
                    remito.ClienteId    = ordenVenta.ClienteId;
                    remito.FechaOrden   = ordenVenta.Fecha;
                    remito.FechaRemito  = dpRemito.Value;
                    remito.OrdenVentaId = ordenVenta.Id;
                    remito.PuntoVenta   = int.Parse(txtPuntoVenta.Text);
                    remito.NumRemito    = int.Parse(txtNumRemito.Text);
                    remito.PathOrigin   = path;
                    string pathSystem = @"C:\SystemDocumentsCooperativa\RemitosElectronicos\" + txtNombrePdf.Text;
                    remito.PathSystem = pathSystem;

                    Context.Remito.Add(remito);
                    Context.SaveChanges();

                    var orden = Context.OrdenVenta.Find(ordenVenta.Id);

                    if (orden != null)
                    {
                        orden.Pendiente = false;

                        Context.Entry(orden).State = EntityState.Modified;
                        Context.SaveChanges();

                        var detalles = Context.OrdenVentaDetalle
                                       .Where(x => x.OrdenVentaId == ordenVenta.Id)
                                       .ToList();

                        foreach (var item in detalles)
                        {
                            for (long i = item.DesdeCaja.Value; i <= item.HastaCaja; i++)
                            {
                                var caja = Context.Caja
                                           .Where(x => x.Campaña == item.Campaña &&
                                                  x.ProductoId == item.ProductoId &&
                                                  x.NumeroCaja == i)
                                           .FirstOrDefault();

                                UpdateMovimientoActual(caja.Id);
                                RegistrarMovimiento(caja.Id, 1, remito.FechaRemito.Value);
                            }
                        }
                    }
                    IEnlaceActualizar mienlace = this.Owner as Form_AdministracionRemitoElectronico;
                    if (mienlace != null)
                    {
                        mienlace.Enviar(true);
                    }
                    this.Close();
                }
            }
            catch
            {
                throw;
            }
        }
Пример #28
0
        static void Main(string[] args)
        {
            Console.WriteLine("Fase 01" + Environment.NewLine);

            Categoria        objCategoria              = null;
            Categoria        objSubCategoria           = null;
            DatosContacto    objDatosContactoProveedor = null;
            DatosContacto    objDatosContactoProveedorPersonaContacto = null;
            Persona          objPersonaContactoProveedor = null;
            Empresa          objProveedor = null;
            Producto         objProducto  = null;
            DatosContacto    objDatosContactoClienteIndividuo = null;
            ClienteIndividuo objClienteIndividuo            = null;
            DatosContacto    objDatosContactoClienteEmpresa = null;
            DatosContacto    objDatosContactoClienteEmpresaPersonaContacto = null;
            Persona          objPersonaContactoClienteEmpresa = null;
            Empresa          objClienteEmpresa        = null;
            DatosContacto    objDatosContactoVendedor = null;
            Vendedor         objVendedor = null;
            Item             objItem     = null;
            Factura          objFactura  = null;
            Remito           objRemito   = null;

            try
            {
                objCategoria = new Categoria("Categoria A");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objSubCategoria = new Categoria("Subcategoria A");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objDatosContactoProveedor = new DatosContacto("*****@*****.**", "123456789012345", "Pasaje Acme 1. Ciudad Desierta.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objDatosContactoProveedorPersonaContacto = new DatosContacto("*****@*****.**", "123456789012340", "Pasaje Acme 1. Ciudad Desierta.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objPersonaContactoProveedor = new Persona("Marta", "González", objDatosContactoProveedorPersonaContacto);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objProveedor = new Empresa("Acme", "12345678901", objPersonaContactoProveedor, objDatosContactoProveedor);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                Producto.IVA = .21;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objProducto = new Producto("Producto A", "Descripcion del producto A.", 10, .25, objProveedor, objCategoria, objSubCategoria);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Producto" + Environment.NewLine);

            Console.WriteLine("Nombre: {0}", objProducto.Nombre);
            Console.WriteLine("Descripción: {0}", objProducto.Descripcion);
            Console.WriteLine("Precio de costo: {0}", objProducto.PrecioCosto.ToString("c"));
            Console.WriteLine("Margen: {0}", objProducto.Margen.ToString("p"));
            Console.WriteLine("I.V.A.: {0}", Producto.IVA.ToString("p"));
            Console.WriteLine("Precio bruto: {0}", objProducto.PrecioBruto.ToString("c"));
            Console.WriteLine("Precio venta: {0}", objProducto.PrecioVenta.ToString("c"));
            Console.WriteLine("Proveedor: {0}", objProducto.Proveedor.Nombre);
            Console.WriteLine("Categoria: {0}", objProducto.Categoria.Nombre);
            Console.WriteLine("Categoria: {0}", objProducto.SubCategoria.Nombre);

            Pausa();

            Console.WriteLine("Proveedor" + Environment.NewLine);

            Console.WriteLine("Nombre: {0}", objProveedor.Nombre);
            Console.WriteLine("CUIT: {0}", objProveedor.CUIT);
            Console.WriteLine("Contacto: {0} {1}", objProveedor.Contacto.Nombre, objProveedor.Contacto.Apellido);
            Console.WriteLine("Email: {0}", objProveedor.DatosContacto.Email);
            Console.WriteLine("Teléfono: {0}", objProveedor.DatosContacto.Telefono);
            Console.WriteLine("Dirección: {0}", objProveedor.DatosContacto.Direccion);

            Pausa();

            try
            {
                objDatosContactoClienteIndividuo = new DatosContacto("*****@*****.**", "987654321098765", "Av. de los Pérez 1.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objClienteIndividuo = new ClienteIndividuo("Juan", "Pérez", "09876543210", objDatosContactoClienteIndividuo);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Cliente individuo" + Environment.NewLine);

            Console.WriteLine("Nombre: {0}", objClienteIndividuo.Nombre);
            Console.WriteLine("Apellido: {0}", objClienteIndividuo.Apellido);
            Console.WriteLine("CUIT: {0}", objClienteIndividuo.CUIT);
            Console.WriteLine("Email: {0}", objClienteIndividuo.DatosContacto.Email);
            Console.WriteLine("Teléfono: {0}", objClienteIndividuo.DatosContacto.Telefono);
            Console.WriteLine("Dirección: {0}", objClienteIndividuo.DatosContacto.Direccion);

            Pausa();

            try
            {
                objDatosContactoClienteEmpresa = new DatosContacto("*****@*****.**", "789012345678901", "Los Hernández 10. Ciudad Poblada.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objDatosContactoClienteEmpresaPersonaContacto = new DatosContacto("*****@*****.**", "890123456789012", "Los Hernández 10.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objPersonaContactoClienteEmpresa = new Persona("Pedro", "Hernández", objDatosContactoClienteEmpresaPersonaContacto);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objClienteEmpresa = new Empresa("Emca", "13256834500", objPersonaContactoClienteEmpresa, objDatosContactoClienteEmpresa);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Cliente empresa" + Environment.NewLine);

            Console.WriteLine("Nombre: {0}", objClienteEmpresa.Nombre);
            Console.WriteLine("CUIT: {0}", objClienteEmpresa.CUIT);
            Console.WriteLine("Contacto: {0} {1}", objClienteEmpresa.Contacto.Nombre, objClienteEmpresa.Contacto.Apellido);
            Console.WriteLine("Email: {0}", objClienteEmpresa.DatosContacto.Email);
            Console.WriteLine("Teléfono: {0}", objClienteEmpresa.DatosContacto.Telefono);
            Console.WriteLine("Dirección: {0}", objClienteEmpresa.DatosContacto.Direccion);

            Pausa();

            try
            {
                objDatosContactoVendedor = new DatosContacto("*****@*****.**", "345685123465543", "Av. de las Capitales 1979. Piso 1.");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            try
            {
                objVendedor = new Vendedor("José", "Mercado", "37363448", objDatosContactoVendedor);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Cliente vendedor" + Environment.NewLine);

            Console.WriteLine("Nombre: {0}", objVendedor.Nombre);
            Console.WriteLine("Contacto: {0}", objVendedor.Apellido);
            Console.WriteLine("DNI: {0}", objVendedor.DNI);
            Console.WriteLine("Email: {0}", objVendedor.DatosContacto.Email);
            Console.WriteLine("Teléfono: {0}", objVendedor.DatosContacto.Telefono);
            Console.WriteLine("Dirección: {0}", objVendedor.DatosContacto.Direccion);

            Pausa();

            try
            {
                objItem = new Item(1, objProducto.Nombre, Convert.ToDecimal(15.15));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            List <Item> lstDetalle = new List <Item>();

            lstDetalle.Add(objItem);

            try
            {
                objFactura = new Factura("C", "0001-00000001", DateTime.Now, "Juan Pérez", "Av. de los Pérez 1", "Resp. Insc.", "Contado", lstDetalle);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Factura" + Environment.NewLine);

            Console.WriteLine("Tipo: {0}", objFactura.Tipo);
            Console.WriteLine("Número: {0}", objFactura.Numero);
            Console.WriteLine("Cliente: {0}", objFactura.Cliente);
            Console.WriteLine("Dirección: {0}", objFactura.Direccion);
            Console.WriteLine("Condición frente al I.V.A.: {0}", objFactura.CondicionIVA);
            Console.WriteLine("Condiciones de venta: {0}", objFactura.CondicionVenta);
            foreach (Item objDetalleItem in objFactura.Detalle)
            {
                Console.WriteLine("Detalle: {0} {1}. Precio unitario: {2}. Importe {3}.", objItem.Cantidad, objItem.Descripcion, objItem.PrecioUnitario, objItem.Importe);
            }
            Console.WriteLine("Total: {0}", objFactura.Total);

            Pausa();

            try
            {
                objRemito = new Remito("0001-00000001", DateTime.Now, "Juan Pérez", "Av. de los Pérez 1", "Resp. Insc.", "Contado", lstDetalle, DateTime.Now.AddDays(1));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }

            Console.WriteLine("Remito" + Environment.NewLine);

            Console.WriteLine("Número: {0}", objRemito.Numero);
            Console.WriteLine("Fecha: {0}", objRemito.Fecha.ToShortDateString());
            Console.WriteLine("Cliente: {0}", objRemito.Cliente);
            Console.WriteLine("Dirección: {0}", objRemito.Direccion);
            Console.WriteLine("Condición frente al I.V.A.: {0}", objRemito.CondicionIVA);
            Console.WriteLine("Condiciones de venta: {0}", objRemito.CondicionVenta);
            foreach (Item objDetalleItem in objRemito.Detalle)
            {
                Console.WriteLine("Detalle: {0} {1}. Precio unitario: {2}. Importe {3}.", objItem.Cantidad, objItem.Descripcion, objItem.PrecioUnitario, objItem.Importe);
            }
            Console.WriteLine("Total: {0}", objRemito.Total);
            Console.WriteLine("Fecha de entrega: {0}", objRemito.FechaEntrega.ToShortDateString());

            Console.Write(Environment.NewLine + "Pulsar una tecla para terminar...");
            Console.ReadKey();
        }
Пример #29
0
        public static void Generar(Remito pRemito)
        {
            string SQL = string.Empty;

            SqlConnection  objConexion = null;
            SqlCommand     objCommandDocumentoComercial = null;
            SqlCommand     objCommandRemito             = null;
            SqlCommand     objCommandItem         = null;
            SqlCommand     objCommandRemitosItems = null;
            SqlTransaction objTransaction         = null;

            try
            {
                objConexion = new SqlConnection(BaseDatos.StringConexion);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            SQL = "INSERT INTO DocumentosComerciales (Numero, Fecha, Cliente, Direccion, CondicionIVA, CondicionVenta)";
            SQL = SQL + " " + "VALUES(@Numero, @Fecha, @Cliente, @Direccion, @CondicionIVA, @CondicionVenta)";
            SQL = SQL + ";" + "SELECT SCOPE_IDENTITY()";
            objCommandDocumentoComercial = new SqlCommand(SQL, objConexion);
            SqlParameter objNumero         = new SqlParameter("@Numero", pRemito.Numero);
            SqlParameter objFecha          = new SqlParameter("@Fecha", pRemito.Fecha.Date.ToString("yyyyMMdd"));
            SqlParameter objCliente        = new SqlParameter("@Cliente", pRemito.Cliente);
            SqlParameter objDireccion      = new SqlParameter("@Direccion", pRemito.Direccion);
            SqlParameter objCondicionIVA   = new SqlParameter("@CondicionIVA", pRemito.CondicionIVA);
            SqlParameter objCondicionVenta = new SqlParameter("@CondicionVenta", pRemito.CondicionVenta);

            objCommandDocumentoComercial.Parameters.Add(objNumero);
            objCommandDocumentoComercial.Parameters.Add(objFecha);
            objCommandDocumentoComercial.Parameters.Add(objCliente);
            objCommandDocumentoComercial.Parameters.Add(objDireccion);
            objCommandDocumentoComercial.Parameters.Add(objCondicionIVA);
            objCommandDocumentoComercial.Parameters.Add(objCondicionVenta);

            SQL = "INSERT INTO Remitos (Id_DocumentoComercial, FechaEntrega)";
            SQL = SQL + " " + "VALUES(@Id_DocumentoComercial, @FechaEntrega)";
            SQL = SQL + ";" + "SELECT SCOPE_IDENTITY()";
            objCommandRemito = new SqlCommand(SQL, objConexion);
            SqlParameter objId_DocumentoComercial = new SqlParameter("@Id_DocumentoComercial", null);
            SqlParameter objFechaEntrega          = new SqlParameter("@FechaEntrega", pRemito.Fecha.Date.ToString("yyyyMMdd"));

            objCommandRemito.Parameters.Add(objId_DocumentoComercial);
            objCommandRemito.Parameters.Add(objFechaEntrega);

            SQL            = "INSERT INTO Items (Cantidad, Descripcion, PrecioUnitario, Importe)";
            SQL            = SQL + " " + "VALUES(@Cantidad, @Descripcion, @PrecioUnitario, @Importe)";
            SQL            = SQL + ";" + "SELECT SCOPE_IDENTITY()";
            objCommandItem = new SqlCommand(SQL, objConexion);
            SqlParameter objCantidad       = new SqlParameter("@Cantidad", null);
            SqlParameter objDescripcion    = new SqlParameter("@Descripcion", null);
            SqlParameter objPrecioUnitario = new SqlParameter("@PrecioUnitario", null);
            SqlParameter objImporte        = new SqlParameter("@Importe", null);

            objCommandItem.Parameters.Add(objCantidad);
            objCommandItem.Parameters.Add(objDescripcion);
            objCommandItem.Parameters.Add(objPrecioUnitario);
            objCommandItem.Parameters.Add(objImporte);

            SQL = "INSERT INTO RemitosItems (ID_Remito, Id_Item)";
            SQL = SQL + " " + "Values(@Id_Remito, @Id_Item)";
            objCommandRemitosItems = new SqlCommand(SQL, objConexion);
            SqlParameter objId_Remito = new SqlParameter("@Id_Remito", null);
            SqlParameter objId_Item   = new SqlParameter("@Id_item", null);

            objCommandRemitosItems.Parameters.Add(objId_Remito);
            objCommandRemitosItems.Parameters.Add(objId_Item);

            try
            {
                objConexion.Open();
                objTransaction = objConexion.BeginTransaction();
                objCommandDocumentoComercial.Transaction = objTransaction;
                objCommandRemito.Transaction             = objTransaction;
                objCommandItem.Transaction         = objTransaction;
                objCommandRemitosItems.Transaction = objTransaction;
                objId_DocumentoComercial.Value     = Convert.ToInt32(objCommandDocumentoComercial.ExecuteScalar());
                objId_Remito.Value = Convert.ToInt32(objCommandRemito.ExecuteScalar());
                foreach (Item Item in pRemito.Detalle)
                {
                    objCantidad.Value       = Item.Cantidad;
                    objDescripcion.Value    = Item.Descripcion;
                    objPrecioUnitario.Value = Item.PrecioUnitario;
                    objImporte.Value        = Item.Importe;
                    objId_Item.Value        = Convert.ToInt32(objCommandItem.ExecuteScalar());
                    objCommandRemitosItems.ExecuteNonQuery();
                }
                objTransaction.Commit();
            }
            catch (Exception ex)
            {
                objTransaction.Rollback();
                throw new Exception(ex.Message);
            }
            finally
            {
                objConexion.Close();
            }
        }
Пример #30
0
        public void GenerarXMLRemito(Remito xR, int xNumero, Empresa Claves, CajaGeneral xCaja, bool xImprimir)
        {
            Remito R = (Remito)xR;
            //XmlTextWriter Writer = new XmlTextWriter(xCaja.EntradaCFE.Trim() + xR.Serie + xR.Numero + ".xml", Encoding.UTF8);
            XmlTextWriter Writer = new XmlTextWriter(xCaja.TemporalCFE.Trim() + xR.Serie + xNumero + ".xml", Encoding.UTF8);

            Writer.WriteStartDocument();
            Writer.WriteStartElement("EnvioCFE");
            Writer.WriteStartElement("Encabezado");
            Writer.WriteStartElement("EmpCodigo");
            Writer.WriteString(Claves.CodEmpresa.ToString());
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmpPK");
            Writer.WriteString(Claves.EmpPK);
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmpCA");
            Writer.WriteString(Claves.Clave.ToString());
            Writer.WriteEndElement();
            Writer.WriteEndElement();

            Writer.WriteStartElement("CFE");

            Writer.WriteStartElement("CFEItem");

            Writer.WriteStartElement("IdDoc");

            Writer.WriteStartElement("CFETipoCFE");
            Writer.WriteValue(R.NumeroCFE());
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFESerie");

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFENro");

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEImpresora");
            Writer.WriteString(xCaja.Impresora);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEImp");
            if (xImprimir)
            {
                Writer.WriteString("S");
            }
            else
            {
                Writer.WriteString("N");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEImpCantidad");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEFchEmis");
            Writer.WriteString(R.Fecha.ToString("yyyy-MM-dd"));
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEPeriodoDesde");

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEPeriodoHasta");

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEMntBruto");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEFmaPago");
            // revisar aca///
            Writer.WriteValue(1);
            ////
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEFchVenc");
            Writer.WriteString(DateTime.Today.ToShortDateString());
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFETipoTraslado");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEAdenda");
            Writer.WriteString(R.Adenda());
            Writer.WriteEndElement();
            Writer.WriteStartElement("CAESeq");
            Writer.WriteString("0");
            Writer.WriteEndElement();


            //            Writer.WriteEndElement();
            Writer.WriteStartElement("CFENumReferencia");
            Writer.WriteValue(1);

            Writer.WriteEndElement();


            //Writer.WriteEndElement();
            Writer.WriteStartElement("CFEImpFormato");

            Writer.WriteValue(1);

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEIdCompra");
            Writer.WriteValue(0);

            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEQrCode");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFEDatosAvanzados");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteStartElement("CFERepImpresa");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            Writer.WriteEndElement();



            #region Emisor
            /* DATOS EMISOR */
            Writer.WriteStartElement("Emisor");

            Writer.WriteStartElement("EmiRznSoc");
            Writer.WriteString("Ferreteria y Barraca Aguiñagalde");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiComercial");
            Writer.WriteString("Hector B. Aguiñagalde");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiGiroEmis");
            //'.WriteString("NI IDEA")
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiTelefono");
            Writer.WriteString("25106");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiTelefono2");
            //'.WriteString("473 20501");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiCorreoEmisor");
            Writer.WriteString("*****@*****.**");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiSucursal");
            Writer.WriteString("1");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiDomFiscal");
            Writer.WriteString("Barbieri 1080");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiCiudad");
            Writer.WriteString("Salto");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiDepartamento");
            Writer.WriteString("Salto");
            Writer.WriteEndElement();
            Writer.WriteStartElement("EmiInfAdicional");
            Writer.WriteEndElement();
            Writer.WriteEndElement();
            #endregion


            #region Receptor

            Writer.WriteStartElement("Receptor");
            Writer.WriteStartElement("RcpTipoDocRecep");
            Writer.WriteValue(R.Cliente.TipoDocumento(R.IS.Codigo));
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpTipoDocDscRecep");
            Writer.WriteString("");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpCodPaisRecep");
            Writer.WriteString("UY");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpDocRecep");
            Writer.WriteString(R.Cliente.Documento(R.IS.Codigo));
            Writer.WriteEndElement();
            //acordate aca porner el subcuenta de la bonificacion corresponditnete;
            //Writer.WriteValue(R.Cliente.Documento(0));



            Writer.WriteStartElement("RcpRznSocRecep");
            Writer.WriteString(R.Cliente.NombreSubCuenta(R.IS.Codigo));
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpDirRecep");
            Writer.WriteString(R.Cliente.DireccionSubCuenta(R.IS.Codigo));
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpCiudadRecep");
            Writer.WriteString("Salto");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpDeptoRecep");
            Writer.WriteString("Salto");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpCP");
            Writer.WriteString("");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpCorreoRecep");
            Writer.WriteString(R.Cliente.CamposLibres.Email);
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpInfAdiRecep");
            Writer.WriteString("");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpDirPaisRecep");
            Writer.WriteString("");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpDstEntregaRecep");
            Writer.WriteEndElement();
            Writer.WriteStartElement("RcpEmlArchivos");
            Writer.WriteValue(1);
            Writer.WriteEndElement();
            // End If
            Writer.WriteEndElement();

            #endregion

            #region Totales
            Writer.WriteStartElement("Totales");

            Writer.WriteStartElement("TotTpoMoneda");
            Writer.WriteString(R.Moneda.CFESubfijo());
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotTpoCambio");
            Writer.WriteValue(R.FactorMoneda);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntNoGrv");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntExpoyAsim");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntImpuestoPerc");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntIVaenSusp");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntNetoIvaTasaMin");

            Writer.WriteValue(0);

            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntNetoIVATasaBasica");
            Writer.WriteValue(Math.Abs(R.TotalBruto()));
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntNetoIVAOtra");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotIVATasaMin");
            Writer.WriteValue(10);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotIVATasaBasica");
            Writer.WriteValue(22);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntIVATasaMin");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntIVATasaBasica");
            Writer.WriteValue(Math.Abs((Math.Abs(R.Importe()) - Math.Abs(R.TotalBruto()))));
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntIVAOtra");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntTotal");
            Writer.WriteValue(Math.Abs(R.Importe()));
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntTotRetenido");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntCreditoFiscal");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("RetencPercepTot");
            Writer.WriteEndElement();


            Writer.WriteStartElement("TotMontoNF");
            Writer.WriteValue(0);
            Writer.WriteEndElement();
            Writer.WriteStartElement("TotMntPagar");
            Writer.WriteValue(Math.Abs(R.Importe()));
            Writer.WriteEndElement();
            Writer.WriteEndElement();


            #endregion



            Writer.WriteStartElement("Detalle");
            foreach (LineaRemito L in R.Lineas)
            {
                Writer.WriteStartElement("Item");
                Writer.WriteStartElement("CodItem");
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteIndFact");
                Writer.WriteValue(3);
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteIndAgenteResp");
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteNomItem");
                Writer.WriteString(L.Descripcion);
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteDscItem");
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteCantidad");
                Writer.WriteValue(Math.Abs(L.Unidadestotal));
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteUniMed");
                Writer.WriteString("C/U");
                Writer.WriteEndElement();
                Writer.WriteStartElement("ItePrecioUnitario");
                Writer.WriteValue(Math.Abs(L.Total()));
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteDescuentoPct");
                Writer.WriteValue(0);
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteDescuentoMonto");
                Writer.WriteValue(0);
                Writer.WriteEndElement();
                Writer.WriteStartElement("SubDescuento");
                Writer.WriteEndElement();
                Writer.WriteStartElement("RetencPercep");
                Writer.WriteEndElement();
                Writer.WriteStartElement("IteMontoItem");
                Writer.WriteValue(Math.Abs(L.Total()));
                Writer.WriteEndElement();
                Writer.WriteEndElement();
            }
            Writer.WriteEndElement();

            Writer.WriteStartElement("Referencia");
            int Index = 0;
            if (R.CFE())
            {
                while (Index < 39 && Index < R.Movimiento.Count)
                {
                    MovimientoGeneral M = R.Movimiento[Index];
                    Writer.WriteStartElement("ReferenciaItem");
                    Writer.WriteStartElement("RefNroLinRef");
                    Writer.WriteValue(Index + 1);
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefIndGlobal");
                    Writer.WriteValue(0);
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefTpoDocRef");
                    Writer.WriteValue(M.CFE.Tipo);
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefSerie");
                    Writer.WriteString(M.CFE.Serie);
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefNroCFERef");
                    Writer.WriteValue(M.CFE.Numero);
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefRazonRef");
                    Writer.WriteEndElement();
                    Writer.WriteStartElement("RefFechaCFEref");
                    Writer.WriteString(M.Fecha.ToString("yyyy-MM-dd"));
                    Writer.WriteEndElement();
                    Writer.WriteEndElement();
                    Index += 1;
                }
            }
            else
            {
                Writer.WriteStartElement("ReferenciaItem");
                Writer.WriteStartElement("RefNroLinRef");
                Writer.WriteValue(1);
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefIndGlobal");
                Writer.WriteValue(1);
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefTpoDocRef");
                Writer.WriteValue(R.NumeroCFE());
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefSerie");
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefNroCFERef");
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefRazonRef");
                Writer.WriteString("Documento a anular es un documento anterior al inicio de la facturacion electronica");
                Writer.WriteEndElement();
                Writer.WriteStartElement("RefFechaCFEref");
                Writer.WriteString(R.Fecha.ToString("yyyy-MM-dd"));
                Writer.WriteEndElement();


                Writer.WriteEndElement();
                Index += 1;
            }
            Writer.WriteEndElement();
            Writer.WriteEndElement();
            Writer.WriteEndElement();
            Writer.WriteEndDocument();
            Writer.Close();
            File.Move(xCaja.TemporalCFE.Trim() + xR.Serie + xNumero + ".xml", xCaja.EntradaCFE.Trim() + xR.Serie + xNumero + ".xml");
        }