public ActionResult DelMovimiento(string id) { mov = mDAO.ObtenerMovimiento(Convert.ToInt32(id)); mDAO.Borrar(Convert.ToInt32(id)); ev = evDAO.ObtenerEvento(mov.IdEvento); decimal valorActualizar = 0; if (ev.TipoEvento == "C") { valorActualizar = valorActualizar - mov.Valor; } else { valorActualizar = valorActualizar + mov.Valor; } caja = new CajaGeneral(mov.Fecha, valorActualizar); CajaGeneral cg = cDAO.LocalizarSaldo(mov.Fecha); if (cg.FechaSaldo != null) { caja.Saldo = saldo; cDAO.ActualizarSaldo(caja, valorActualizar); } TempData["mesajeDelete"] = "mensagem Ok"; return(RedirectToAction("MostrarMovimientos2", "Movimiento")); }
public ActionResult GuardarDatos(Movimiento movimiento, FormCollection form) { decimal verSaldoNegativo = cDAO.ConsultarSaldoActual(); // verificar se valor es mayor que saldo ev = evDAO.ObtenerEvento(movimiento.IdEvento); bool saldoNegativo = false; if (ev.TipoEvento == "D" & movimiento.Valor > verSaldoNegativo) { saldoNegativo = true; } if (!ModelState.IsValid || saldoNegativo) { List <EvActivoPasivo> lEventos = new List <EvActivoPasivo>(); lEventos = evDAO.ListarTodosEventos(); ev = new EvActivoPasivo("Select un Evento"); lEventos.Insert(0, ev); ViewBag.listaEventos = lEventos; List <Cuenta> lCuentas = new List <Cuenta>(); lCuentas = ccDAO.ListarCuentasPorId(Convert.ToInt32(Session["idUsu"])); if (Convert.ToInt32(Session["tipoUsu"]) == 1) { lCuentas = ccDAO.ListarCuentas(); } cc = new Cuenta("Select una Cuenta"); lCuentas.Insert(0, cc); ViewBag.listaCuentas = lCuentas; Saldo = cDAO.ConsultarSaldoActual(); ViewBag.Saldo = Saldo; if (movimiento.Valor > Saldo) { TempData["sinSaldo"] = "Saldo negativo"; } return(View("Create", movimiento)); } TempData["mesaje"] = "mensagem Ok"; mDAO.Insertar(movimiento); decimal saldo = Convert.ToDecimal(form["saldo"]); decimal nuevoSaldo = 0; ev = evDAO.ObtenerEvento(movimiento.IdEvento); decimal valorActualizar = 0; if (ev.TipoEvento == "C") { nuevoSaldo = saldo + movimiento.Valor; valorActualizar = valorActualizar + movimiento.Valor; } else { valorActualizar = valorActualizar - movimiento.Valor; nuevoSaldo = saldo - movimiento.Valor; } caja = new CajaGeneral(movimiento.Fecha, nuevoSaldo); CajaGeneral cg = cDAO.LocalizarSaldo(movimiento.Fecha); if (cg.FechaSaldo == null) { cDAO.Insertar(caja); } else { caja.Saldo = saldo; cDAO.ActualizarSaldo(caja, valorActualizar); } return(RedirectToAction("Create", "Movimiento")); }
public ActionResult EditMovimiento(FormCollection form, Movimiento mov) { if (!ModelState.IsValid) { List <EvActivoPasivo> lEventos = new List <EvActivoPasivo>(); lEventos = evDAO.ListarTodosEventos(); ViewBag.listaEventos = lEventos; List <Cuenta> lCuentas = new List <Cuenta>(); lCuentas = ccDAO.ListarCuentasPorId(Convert.ToInt32(Session["idUsu"])); if (Convert.ToInt32(Session["tipoUsu"]) == 1) { lCuentas = ccDAO.ListarCuentas(); } ViewBag.listaCuentas = lCuentas; return(View("EditMovimiento", mov)); } TempData["mesaje"] = "mensagem Ok"; mov = mDAO.ObtenerMovimiento(Convert.ToInt32(form["IdMov"])); decimal valorAnterior = mov.Valor; decimal valorActualizar = 0; string fechaAnterior = mov.Fecha; mov.DescMov = form["descMov"].ToString(); mov.Fecha = form["fecha"].ToString(); mov.Valor = Convert.ToDecimal(form["valor"]); mov.IdEvento = Convert.ToInt32(form["idEvento"]); mov.IdCuenta = Convert.ToInt32(form["idCuenta"]); mDAO.Actualizar(mov); ev = evDAO.ObtenerEvento(mov.IdEvento); if (valorAnterior - mov.Valor != 0) // se hay modificación el el valor, actualiza el saldo { if (ev.TipoEvento == "C") // si es credito, se hace el calculo invertido { valorActualizar = (mov.Valor - valorAnterior); } else { valorActualizar = (valorAnterior - mov.Valor); // si es debito el calculo es normal } caja = new CajaGeneral(mov.Fecha, valorActualizar); CajaGeneral cg = cDAO.LocalizarSaldo(mov.Fecha); cDAO.ActualizarSaldo(caja, valorActualizar); Log lg = new Log(String.Format("Se ha modificado el valor del movimiento nº {0}", mov.IdMov)); LogDAO lDAO = new LogDAO(); lDAO.Insertar(lg); //if (Convert.ToDateTime(this.txtStartDate.Text) > Convert.ToDateTime(this.txtEndDate.Text)) // comparar fechas en string } //else if(fechaAnterior != mov.Fecha) //{ // if (ev.TipoEvento == "C") // si es credito, se hace el calculo invertido // valorActualizar = (mov.Valor - valorAnterior); // else // valorActualizar = (valorAnterior - mov.Valor); // si es debito el calculo es normal // caja = new CajaGeneral(mov.Fecha, valorActualizar); // CajaGeneral cg = cDAO.LocalizarSaldo(mov.Fecha); // if (cg.FechaSaldo == null) // { // CajaGeneral cgCompara = cDAO.LocalizarNuevoSaldo(mov.Fecha); // see saldo no existe, coge el saldo seguinte // cg = cDAO.LocalizarSaldo(cgCompara.FechaSaldo); // if (cg.IdCaja == 1) // { // if (ev.TipoEvento == "C") // caja.Saldo = (saldo + mov.Valor); // else // caja.Saldo = (saldo - mov.Valor); // caja.FechaSaldo = mov.Fecha; // cDAO.Insertar(caja); // } // } // cDAO.ActualizarSaldo(caja, valorActualizar); //} // SE DEVE ACTUALIZAR O SALDO, VERIFICAR AS POSSIBLILIDADES DE MODIFICAR O VALOR E A DATA /// // vERIFICAR SE A DATA JA EXISTE E ACTUALIZAR OU VERIF SE É NOVA Y INSERTAR, Y CLARO, ACTUALIZAR O SALDO // return(RedirectToAction("MostrarMovimientos2", "Movimiento")); }
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"); }
public bool LeerXMLRetorno(string xNombre, CajaGeneral xCaja) { System.Threading.Thread.Sleep(3000); bool Lectura = false; FileStream xFile; FileInfo FI; string Lugar = xCaja.SalidaCFE.Trim(); string xArchivo = xNombre + ".xml"; string Archivo = Lugar + xArchivo; while (!Lectura) { try { if (File.Exists(Archivo)) { FI = new FileInfo(Archivo); xFile = FI.OpenWrite(); Lectura = true; xFile.Close(); } } catch (Exception ex) { Lectura = false; } } XmlReader Reader = new XmlTextReader(Archivo); while (Reader.Read()) { XmlNodeType Type = Reader.NodeType; if (Type == XmlNodeType.CDATA) { XmlDocument TempDoc = new XmlDocument(); TempDoc.LoadXml(Reader.ReadContentAsString()); XmlNodeList Nodos = TempDoc.GetElementsByTagName("CFEStatus"); int Index; for (Index = 0; Index <= Nodos.Count - 1; Index++) { switch (Nodos[Index].InnerXml) { case "8": case "3": case "1": Reader.Close(); return(false); case "2": case "5": case "4": Reader.Close(); return(true); } } } } Reader.Close(); return(false); }