public List <object> getMovimientosPendiente(int xCliente) { List <IDataParameter> P = new List <IDataParameter>(); P.Add(new SqlParameter("@CLIENTE", xCliente)); DbCommand Command = new SqlCommand("SELECT V.VENCIMIENTOCONTADO AS PRECIOCONTADO,DBO.JL_TARIFABYFACTURA(T.SERIE,T.NUMERO) AS TARIFA,DBO.JL_TIPOBYCODCLIENTE(t.codigointerno) as tipocliente,T.SERIEDOC,t.NUMERODOC,t.codigointerno as CLIENTE,V.TIPODOC as NUMEROTIPO,T.MORA AS MORA,T.CAJASALDADO AS CAJASALDADO,T.ZSALDADO AS ZSALDADO,T.FACTORMONEDA AS FMONEDA,T.ORIGEN,T.GENAPUNTE AS APUNTE,T.CODTIPOPAGO AS TIPOPAGO,T.CODFORMAPAGO AS FORMAPAGO,MAX(T.POSICION) AS POSICION,MAX(D.DESCRIPCION) AS DESCRIPCION, MAX(T.FECHADOCUMENTO) AS 'FECHA DEL DOCUMENTO', MAX(T.SERIE) AS 'SERIE DE DOCUMENTO', MAX(T.NUMERO) AS 'NUMERO DE DOCUMENTO',CAST(SUM(T.IMPORTE) AS DECIMAL(16, 2)) AS IMPORTE,T.CODMONEDA AS MONEDA,T.ESTADO AS ESTADO,T.FECHAVENCIMIENTO AS VENCIMIENTO,T.NUMEROREMESA AS REMESA, T.TIPODOCUMENTO AS TIPODOC,T.FECHASALDADO AS SALDADO,SUBCTA FROM TESORERIA AS T LEFT OUTER JOIN FACTURASVENTA AS V ON T.SERIE = V.NUMSERIE AND T.NUMERO = V.NUMFACTURA AND T.N = V.N LEFT OUTER JOIN SERIES AS D ON V.NUMSERIE = D.SERIE WHERE (T.ORIGEN = 'C' AND (T.TIPODOCUMENTO='F' OR T.TIPODOCUMENTO ='L')) AND (T.CODIGOINTERNO = @CLIENTE) AND T.N='B' AND (T.ESTADO='P') GROUP BY V.VENCIMIENTOCONTADO,T.SERIEDOC,t.NUMERODOC,t.codigointerno,V.TIPODOC,T.MORA,T.CAJASALDADO,T.ZSALDADO,T.FACTORMONEDA,T.ORIGEN,T.GENAPUNTE,T.CODTIPOPAGO,T.CODFORMAPAGO,T.FECHADOCUMENTO,T.SERIE, T.NUMERO,T.CODMONEDA,T.ESTADO,T.FECHAVENCIMIENTO,T.NUMEROREMESA, T.TIPODOCUMENTO,T.FECHASALDADO,SUBCTA,T.POSICION ORDER BY T.FECHADOCUMENTO ASC ", (SqlConnection)Connection); System.Data.IDataReader rd = null; List <object> Movimientos = new List <object>(); MovimientoGeneral Entity = null; if (Connection.State == System.Data.ConnectionState.Closed) { _Connection.Open(); } rd = ExecuteReader(Command, P); while (rd.Read()) { Entity = (MovimientoGeneral)getMovimientoFromReader(rd, _ListaMonedas, false); Movimientos.Add(Entity); } rd.Close(); CerrarConexion(Connection); foreach (Movimiento M in Movimientos) { ((Movimiento)M).CFE = (CFE)getCFEByFactura(M.Numero, M.Serie); } return(Movimientos); }
public List <MovimientoGeneral> PendientesByCliente(ClienteActivo xCliente) { List <MovimientoGeneral> Movimientos = new List <MovimientoGeneral>(); foreach (object Obj in DBCuentas.getMovimientosPendiente(xCliente.IdCliente)) { MovimientoGeneral M = (MovimientoGeneral)Obj; Movimientos.Add(M); } return(Movimientos); }
protected object getMovimientoFromReader(IDataReader Reader, List <Moneda> xListaMonedas, bool xRecibo) { int Numero, cTarifa, Tipo, SubCta, codFormaPago, Remesa, Moneda, zSaldado, zCodCliente, zNumeroDoc, xTipoCliente, Tipopago; string Serie, sDoc, TipoDoc, Estado, Origen, apunte, Descripcion; DateTime FV, FS, Fecha, VC; decimal Mora, fMoneda, Importe; byte Linea; Moneda = (int)(Reader["MONEDA"]); fMoneda = Convert.ToDecimal((Reader["FMONEDA"] is DBNull ? 1 : Reader["FMONEDA"])); Tipo = (int)(Reader["NUMEROTIPO"] is DBNull ? 0 : Reader["NUMEROTIPO"]); Importe = (decimal)(Reader["IMPORTE"]); Moneda M = xListaMonedas.Find(xObj => xObj.Codmoneda == Moneda); Numero = (int)(Reader["NUMERO DE DOCUMENTO"]); Serie = (string)(Reader["SERIE DE DOCUMENTO"] is DBNull ? string.Empty : Reader["SERIE DE DOCUMENTO"]); Fecha = Convert.ToDateTime((Reader["FECHA DEL DOCUMENTO"])); Linea = Convert.ToByte((Reader["POSICION"])); fMoneda = Convert.ToDecimal((Reader["FMONEDA"] is DBNull ? 1 : Reader["FMONEDA"])); SubCta = (int)(Reader["SUBCTA"] is DBNull ? 0 : Reader["SUBCTA"]); zNumeroDoc = (int)(Reader["NUMERODOC"] is DBNull ? -1 : Reader["NUMERODOC"]); if (SubCta < 1) { SubCta = 1; } if (xRecibo) { return(new MovimientoRecibo(Numero, Serie, Fecha, Linea, fMoneda, Importe, SubCta, M, Tipo)); } else { MovimientoGeneral Temporal = null; cTarifa = (int)(Reader["TARIFA"] is DBNull ? 1 : Reader["TARIFA"]); codFormaPago = Convert.ToInt32((Reader["FORMAPAGO"])); Remesa = Convert.ToInt32((Reader["REMESA"] is DBNull ? -1 : Reader["REMESA"])); Tipopago = Convert.ToInt32((Reader["TIPOPAGO"])); zSaldado = (int)(Reader["ZSALDADO"] is DBNull ? -1 : Reader["ZSALDADO"]); zCodCliente = (int)(Reader["CLIENTE"] is DBNull ? -1 : Reader["CLIENTE"]); sDoc = (string)(Reader["SERIEDOC"] is DBNull ? string.Empty : Reader["SERIEDOC"]); Origen = (string)(Reader["ORIGEN"] is DBNull ? string.Empty : Reader["ORIGEN"]); apunte = (string)(Reader["APUNTE"] is DBNull ? string.Empty : Reader["APUNTE"]); Descripcion = (string)(Reader["DESCRIPCION"] is DBNull ? string.Empty : Reader["DESCRIPCION"]); TipoDoc = (string)(Reader["TIPODOC"]); Estado = (string)(Reader["ESTADO"]); FV = Convert.ToDateTime((Reader["VENCIMIENTO"])); FS = Convert.ToDateTime((Reader["SALDADO"])); VC = Convert.ToDateTime((Reader["PRECIOCONTADO"] is DBNull ? DateTime.MinValue : Reader["PRECIOCONTADO"])); Mora = Convert.ToDecimal((Reader["MORA"] is DBNull ? 0 : Reader["MORA"])); xTipoCliente = (int)(Reader["tipocliente"] is DBNull ? -1 : Reader["tipocliente"]); Temporal = new MovimientoGeneral(Numero, Serie, Descripcion, Importe, Fecha, (Moneda)M, Linea, Origen, cTarifa, fMoneda, SubCta, zNumeroDoc); Temporal.Mora = Mora; Temporal.Codcliente = zCodCliente; Temporal.Factormoneda = fMoneda; Temporal.GenApunte = apunte; Temporal.TipoPago = Tipopago; Temporal.FormaPago = codFormaPago; Temporal.Estado = Estado; Temporal.FechaVencimiento = FV; Temporal.Numeroremesa = Remesa; Temporal.Tipodocumento = TipoDoc; Temporal.Saldado = FS; Temporal.Zsaldado = zSaldado; Temporal.SerieDoc = sDoc; Temporal.VencimientoContado = VC; Temporal.Tipocliente = xTipoCliente; Temporal.CFE = (CFE)CuentasMapper.getCFEByFactura(Numero, Serie); return(Temporal); } }
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"); }