diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 9319c5d1e..87658bb11 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -2672,7 +2672,7 @@ Public Class ClsGenerales CveActivoFijo As Integer, CveOS As Integer, CvePS As Integer, CveCompra As Integer, CveIE As Integer, Actual As String, Anterior As String, CveUsuario As Integer, CveEmpresa As Integer, SeElimino As Integer, Descripcion As String, Tipo As String, - Id_Clave As String, Optional IdPoliza As Integer = -1, Optional CvePromocion As Integer = -1) As Boolean + Id_Clave As String, Optional IdPoliza As Integer = -1, Optional CvePromocion As Integer = -1, Optional CveUsuarioTabla As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_HistorialBitacoraAdd") @@ -2695,7 +2695,9 @@ Public Class ClsGenerales .Add("@Id_Clave", SqlDbType.VarChar, 100).Value = Id_Clave .Add("@IdPoliza", SqlDbType.Int).Value = IdPoliza .Add("@CvePromocion", SqlDbType.Int).Value = CvePromocion - + .Add("@CveUsuarioTabla", SqlDbType.Int).Value = CveUsuarioTabla + + End With 'SqlTypes.SqlDateTime.Null Try diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 2701f6574..6d71b3738 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4285,7 +4285,6 @@ Public Class ClsPaginas PaginaDict.Add("/GPS/ReporteUnidadesnoTransmiten.aspx".ToUpper(), 917) PaginaDict.Add("/GPS/RepArrastre.aspx".ToUpper(), 718) - PaginaDict.Add("/Ventas/RepConciliacionEmitidosSat.aspx".ToUpper(), -1) PaginaDict.Add("/Ventas/RepConciliacionSat.aspx".ToUpper(), 716) PaginaDict.Add("/Ventas/SolicitudesSAT.aspx".ToUpper(), 717) @@ -5519,7 +5518,7 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/RepPUESinPago.aspx".ToUpper(), 672) PaginaDict.Add("/Ventas/RepVentasResumen.aspx".ToUpper(), 674) PaginaDict.Add("/Ventas/RepAnticiposEspeciales.aspx".ToUpper(), 678) - PaginaDict.Add("/Ventas/RepArqueos.aspx".ToUpper(), 679) + PaginaDict.Add("/Ventas/RepArqueosDetalle.aspx".ToUpper(), 680) PaginaDict.Add("/Ventas/RepCotizacionesxFacturar.aspx".ToUpper(), 686) PaginaDict.Add("/Ventas/RepRemisionesNC.aspx".ToUpper(), 687) @@ -8494,7 +8493,7 @@ Public Class ClsPaginas params.Add(New ReportParameter("UsoCFDI", ObjOC.UsoCFDI)) - If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + If UsuarioActual.CveEmpresa.Contiene(72, 80, 172) Then params.Add(New ReportParameter("FolioAdicional", dtOC(0)("FolioAdicional").ToString)) params.Add(New ReportParameter("Vendedor", dtOC(0)("Vendedor").ToString)) diff --git a/Empresas/172/Formatos/OC.rdlc b/Empresas/172/Formatos/OC.rdlc index dfd291597..e9580c58c 100644 --- a/Empresas/172/Formatos/OC.rdlc +++ b/Empresas/172/Formatos/OC.rdlc @@ -1,5 +1,5 @@ - + 0 @@ -165,7 +165,6 @@ CANT. @@ -179,7 +178,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -200,7 +199,6 @@ CLAVE @@ -216,7 +214,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -237,7 +235,6 @@ DESCRIPCIÓN @@ -253,7 +250,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -274,7 +271,6 @@ OBSERVACIÓN @@ -290,7 +286,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -311,7 +307,6 @@ P/U @@ -327,7 +322,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -348,7 +343,6 @@ DESC. @@ -364,7 +358,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -385,7 +379,6 @@ IMPORTE @@ -401,7 +394,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -413,7 +406,7 @@ - 0.19644in + 0.15024in @@ -690,7 +683,7 @@ DsOC 0.04788in - 0.41372in + 0.36752in 8.15357in @@ -719,9 +713,9 @@ Textbox20 - 1.87711cm + 1.36911cm 15.76748cm - 0.45183cm + 0.346cm 2.5cm @@ -752,9 +747,9 @@ Textbox20 - 3.97642cm + 3.11917cm 15.77277cm - 0.45183cm + 0.31777cm 2.5cm 1 @@ -860,7 +858,7 @@ Textbox20 - 0.40195cm + 0.08445cm 15.76748cm 0.45183cm 2.5cm @@ -884,6 +882,7 @@ =Parameters!SubTotal.Value @@ -929,7 +929,7 @@ Textbox46 - 4.85549cm + 3.77599cm 0.00001cm 0.45183cm 19.46272cm @@ -959,7 +959,6 @@ Textbox5 - 0.11768cm 0.14316cm 20.70398cm 7 @@ -967,7 +966,7 @@ - #0e2455 + Orange 2pt 2pt 2pt @@ -982,14 +981,16 @@ - - #0e2455 + Orange 2pt 2pt 2pt @@ -1013,14 +1014,16 @@ - - #0e2455 + Orange 2pt 2pt 2pt @@ -1054,7 +1057,7 @@ Textbox1 - 0.43723cm + 0.11973cm 0.00001cm 0.41479cm 14.67376cm @@ -1078,6 +1081,7 @@ Ret I.V.A @@ -1088,9 +1092,9 @@ Textbox20 - 2.32894cm + 1.75744cm 15.76669cm - 0.45183cm + 0.346cm 2.5cm 11 @@ -1115,6 +1119,7 @@ =Parameters!RetIVA.Value @@ -1165,9 +1171,9 @@ Textbox20 - 2.78077cm + 2.14577cm 15.76669cm - 0.45183cm + 0.346cm 2.5cm 13 @@ -1192,6 +1198,7 @@ =Parameters!RetISR.Value @@ -1242,9 +1250,9 @@ Textbox20 - 3.2326cm + 2.5341cm 15.76669cm - 0.45183cm + 0.33368cm 2.5cm 15 @@ -1269,6 +1277,7 @@ =Sum(Fields!IEPS.Value, "DsOC") @@ -1319,9 +1329,9 @@ Textbox20 - 0.88906cm + 0.57156cm 15.77355cm - 0.45183cm + 0.346cm 2.5cm 17 @@ -1346,6 +1356,7 @@ =Parameters!Descuento.Value @@ -1396,9 +1408,9 @@ Textbox20 - 1.34089cm + 0.95989cm 15.77355cm - 0.45183cm + 0.35983cm 2.5cm 19 @@ -1423,6 +1435,7 @@ =Parameters!SubTotal2.Value - 2.58039in + 2.10747in - - - true true @@ -1669,399 +1668,8 @@ Textbox2 1.60003in 0.12161cm - 1.20291in - 3.07995in - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Enviar a: - - - - - - - - - Nombre: - - - - =Parameters!EnvioContacto.Value - - - - - - - - - - - - - Departamento: - - - - =Parameters!EnvioDepartamento.Value - - - - - - - - - Calle: - - - - - - - - =Parameters!EnvioDireccion.Value - - - - - - - - - Colonia: - - - - - - - - =Parameters!EnvioColonia.Value - - - - - - - - - Ciudad: - - - - - - - - =Parameters!EnvioCiudad.Value - - - - - - - - Estado: - - - - - - - - =Parameters!EnvioEstado.Value - - - - - - - - - Municipio y/o Delegación: - - - - =Parameters!EnvioCiudad.Value - - - - - - - - - - - - - Pais: - - - - - - - - =Parameters!ProveedorPais.Value - - - - - - - - - - - - - - - - CP: - - - - - - - - =Parameters!EnvioCP.Value - - - - - - - - - Teléfono: - - - - - - - - =Parameters!EnvioTel.Value - - - - - - - - - - - - - Pedido/Contrato: - - - - =Parameters!PedidoContrato.Value - - - - - - - Textbox36 - 4.06406cm - 7.94469cm - 4.25633cm - 8.32364cm - 2 - - =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),False,True) - + 1.06583in + 3.72333in @@ -2081,7 +1689,7 @@ Facturar a: @@ -2094,7 +1702,7 @@ - Compuproveedores, S.A. de C.V. + Citrus Game, S.A. de C.V. - - - - - - - - =Parameters!UsoCFDI.Value + @@ -2199,10 +1792,10 @@ Textbox40 4.06406cm - 16.26833cm - 4.25633cm - 4.55726cm - 3 + 12.50129cm + 2.70722cm + 8.3243cm + 1 @@ -2213,46 +1806,6 @@ 2pt - - true - true - - - - - ="Envío Directo al Cliente" - - - - - - - EstatusEntrega - 1.27043cm - 4.61876cm - 0.6cm - 5.51419cm - 4 - - =IIF(Parameters!EntregaDirecta.Value <> "False",FALSE,TRUE) - - - - 2pt - 2pt - 2pt - 2pt - - true true @@ -2302,6 +1855,7 @@ =Parameters!Folio.Value @@ -2468,7 +2022,7 @@ 12.50129cm 3.79029cm 8.3243cm - 5 + 2 @@ -2479,121 +2033,21 @@ 2pt - - true - true - - - - - - - 2pt - 2pt - 2pt - 2pt - - - true - true - - - - - Enviar a: - - - - - - - - - Dirección: - - - - =Parameters!LugarEntrega.Value - - - - - - - - - - - - - - - - - - - - Textbox36 - 4.09934cm - 7.94469cm - 4.25633cm - 8.32364cm - 7 - - =IIF(String.IsNullOrEmpty(Parameters!LugarEntrega.Value),True,False) - - - - 2pt - 2pt - 2pt - 2pt - - + - - - Conciliacion Emitidas Sat - - - - - - - - - - - - - -
-
-
- - -
-
-
- - -
- - - - - - - -
-
- Fecha Inicio: -
-
-
- - - - -
- - - - - - -
-
- Fecha Fin: -
-
-
- - - - -
- - - - - - -
-
-
-
- -
-
-
- -
-
-
- - Facturas emitidas en el sat sin registrar de -
-
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- --%> - XML - - - - - r - - - - - - -
-
- - - -
-
- -
- - - - diff --git a/Ventas/RepConciliacionEmitidosSat.aspx.cs b/Ventas/RepConciliacionEmitidosSat.aspx.cs deleted file mode 100644 index 7cf8cc869..000000000 --- a/Ventas/RepConciliacionEmitidosSat.aspx.cs +++ /dev/null @@ -1,1808 +0,0 @@ -using Microsoft.Reporting.WebForms; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Xml; -using Extensiones; -using System.Data; -using System.Text; -using ADSistemaLibrary2.SatXml; - -//using ADS_CFDI_SAT; - -public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas -{ - #region "Propiedades" - const string rqFechaInicio = "FechaInicio"; - const string rqFechaFin = "FechaFin"; - const string rqRegistroEn = "RegistroEn"; - - public string RfechaI - { - get - { - return ViewState["RfechaI"].ToString(); - } - set { ViewState["RfechaI"] = value; } - } - public string RfechaF - { - get - { - return ViewState["RfechaF"].ToString(); - } - set { ViewState["RfechaF"] = value; } - } - public object CurrentRow - { - get - { - return ViewState["CurrentRow"]; - } - set { ViewState["CurrentRow"] = value; } - } - public int RegistroEn - { - get - { - if (ViewState["RegistroEn"] != null) - { - return ViewState["RegistroEn"].ToString().ToEntero(); - } - else - { - return 0; - } - } - set { ViewState["RegistroEn"] = value; } - } - private StringBuilder strErrores; - #endregion - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - string path; - if (Request["op"] != null && Request["op"].ToString().Length > 0) - { - try - { - - if (System.IO.File.Exists((path = string.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta.Trim(), Extensiones.ModExtensiones.Decripta(Request["op"].ToString()).Trim()).Replace("/", "\\")))) - { - - System.IO.FileInfo archivo = new System.IO.FileInfo(path); - - HttpContext.Current.Response.Clear(); - HttpContext.Current.Response.ClearContent(); - HttpContext.Current.Response.ContentType = "text/plain"; - HttpContext.Current.Response.AppendHeader("Content-disposition", string.Format("attachment; filename={0}", archivo.Name)); - HttpContext.Current.Response.AddHeader("Content-Length", archivo.Length.ToString()); - HttpContext.Current.Response.TransmitFile(path); - HttpContext.Current.Response.End(); - } - else - { - RegistraScript("window.close()"); - } - } - catch (Exception ex) - { - Extensiones.ModExtensiones.GuardaLog(ex.ToString()); - RegistraScript("window.close()"); - - } - - } - - fillrequestfields(); - DdlSubProyectoDatos.DataSource = get_GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros("EsSucursal = True "); - DdlSubProyectoDatos.DataBind(); - DdlClasificacion.DataSource = get_GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion: 1).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby: "Clasificacion"); - - DdlClasificacion.DataBind(); - - - CargaConciliacionemitidasSATGet(); - int CveClasificacion = DdlClasificacion.SelectedValue.ToEntero(); - if (UsuarioActual.Empresa.Funcionalidad(141).ToString() == "1") - { - - DdlPS.setEsWebService(true); - DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString()); - DdlPS.ddlWS.Attributes.Add("data-pagina", "ventas/ventas"); - DdlPS.ddlWS.Attributes.Add("data-Estatus", "1"); - } - else - { - - DdlPS.setEsWebService(false); - DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1); - DdlPS.ddl.DataBind(); - } - } - } - private void downfile(string path) - { - - } - public void fillrequestfields() - { - - DateTime fecha; - DateTime fechaInicio = DateTime.Now; - DateTime fechaFin = DateTime.Now; - RegistroEn = -1; - if (fechaInicio.Day < 5) { fechaInicio = fechaInicio.AddMonths(-1); } - fechaInicio = fechaInicio.AddDays(1 - fechaInicio.Day); - fechaFin = fechaInicio.AddYears(1).AddDays(-1); - if (Request[rqRegistroEn] != null) { RegistroEn = Request[rqRegistroEn].ToEntero(); } - if (Request[rqFechaInicio] != null) { DateTime.TryParse(Request[rqFechaInicio], out fecha); fechaInicio = fecha.Year > 1900 ? fecha : fechaInicio; } - if (Request[rqFechaFin] != null) { DateTime.TryParse(Request[rqFechaFin], out fecha); fechaFin = fecha.Year > 1900 ? fecha : fechaFin; } - txtFechaI.Text = string.Format("{0:dd/MM/yyyy}", fechaInicio); - txtFechaF.Text = string.Format("{0:dd/MM/yyyy}", fechaFin); - ddlRegistroen.SelectedValueExist(RegistroEn); - } - - protected void CargaRepConciliacionSatGET() - { - string RtipoDocto; - RtipoDocto = "I"; - RfechaI = txtFechaI.Text.Length > 0 ? txtFechaI.Text.ToDateTime().ToString("yyyy/MM/dd") : ""; - RfechaF = txtFechaF.Text.Length > 0 ? string.Format("{0:yyyy/MM/dd}", txtFechaF.Text.ToDateTime()) : ""; - RegistroEn = ddlRegistroen.SelectedValue.ToEntero(); - using (ClsGenerales ObjRepC = new ClsGenerales()) - { - if (ObjRepC.RepConciliacionSatDetalleGET(UsuarioActual.CveEmpresa, RtipoDocto, RfechaI, RfechaF, RegistroEn)) - { - Ltlsinregistrar.Text = $"{ObjRepC.DtResultados.COUNT("FolioFiscal", "CveVenta IS NULL")}"; - ltlTotal.Text = $"{ObjRepC.DtResultados.Rows.Count}"; - - } - GVConciliacionemitidasSAT.DataSource = ObjRepC.DtResultados; - ObjRepC.Dispose(); - - } - GVConciliacionemitidasSAT.DataBind(); - UpDatosReporte.Update(); - } - protected void CargaConciliacionemitidasSATGet() - { - CargaRepConciliacionSatGET(); - //ClsVentas ObjV = new ClsVentas(); - //ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa); - //GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta"); - //Ltlsinregistrar.Text = $"{ObjV.DtResultados.COUNT("FolioFiscal","CveVenta IS NULL")}"; - //ltlTotal.Text = $"{ObjV.DtResultados.Rows.Count}"; - //ObjV.Dispose(); - //GVConciliacionemitidasSAT.DataBind(); - //UpDatosReporte.Update(); - - } - private void registrarventa(GridViewRow gvrow) - { - - { - string rutaempresa = UsuarioActual.Empresa.Ruta.Trim().Replace("/", "\\"); - string rutafile = gvrow.DataKey("RutaXml").Trim().Replace("/", "\\"); - rutaempresa = rutaempresa.Substring(rutaempresa.Length - 1, 1) == "\\" ? rutaempresa.Substring(0, rutaempresa.Length - 1): rutaempresa; - rutafile = rutafile.Substring(0, 1) == "\\" ? rutafile.Substring(1): rutafile; - string ruta = string.Format("{0}\\{1}", rutaempresa, rutafile); //gvrow.DataKey("RutaXml"); - //Alert(ruta); - - //return false; - strErrores = new StringBuilder(); - XmlSatCFDI objxml = null; - Modelos.Factura objfact = null; - bool continuar = true; - objxml = XmlSatCFDI.readXML(ruta); - continuar = continuar && (objxml != null); - if (continuar) - { - - objfact = GetFacturaFromXML(objxml); - } - continuar = continuar && (objfact != null); - if (continuar) - { - - // Dim As New (ObjVentas.IniciaTransacSQL()) - // Dim As = Nothing - // Dim MensajeAlert = New StringBuilder - ClsVentas ObjVentas = new ClsVentas(); - ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); - ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); - ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); - ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); - ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); - ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); - ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); - ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); - ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); - ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); - ClsContPAQi ObjContPaq = null; - //StringBuilder MensajeAlert = new StringBuilder() ; - Modelos.Factura.MMensajeFactura Resp = new Modelos.Factura.MMensajeFactura(); - DataTable DtDetalle = objfact.DtDetalle; - try - { - objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, - ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, false, ObjAcum,ref Resp); - - } - catch (Exception e) - { - objfact.CveVenta = -1; - e.ToString().GuardaLog(); - strErrores.AppendLine("
"); - strErrores.AppendLine(e.ToString()); - } - if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) - if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) - { - ObjVentas.Commit(); - } - else - { - foreach (string item in objfact.ErrorList) - { - strErrores.AppendLine("
"); - strErrores.AppendLine(item); - } - objfact.CveVenta = -1; - ObjVentas.RollBack(); - } - ObjVentas.Dispose(); - ObjConta.Dispose(); - ObjInventario.Dispose(); - ObjCGame.Dispose(); - ObjContr.Dispose(); - ObjDocCliente.Dispose(); - ObjClientes.Dispose(); - ObjAcum.Dispose(); - - } - if (objfact != null && objfact.CveVenta > 0) - { - CargaConciliacionemitidasSATGet(); - Alert($"se ha agregado la factura correctamente.
Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion, timeout: 25); - } - else { continuar = false; } - if (!continuar) - { - Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); - } - } - - } - - protected void LnkRegistrar_Click(object sender, EventArgs e) - { - GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer); - CurrentRow = gvrow; - RegistraScript("$('#DModalDefaults').modal();"); - //registrarventa(gvrow); - //string ruta = gvrow.DataKey("RutaXml"); - //strErrores = new StringBuilder(); - //XmlSatCFDI objxml = null; - //Modelos.Factura objfact = null; - //bool continuar = true; - //objxml = XmlSatCFDI.readXML(ruta); - //continuar = continuar && (objxml != null); - //if (continuar) - //{ - - // objfact = GetFacturaFromXML(objxml); - //} - //continuar = continuar && (objfact != null); - //if (continuar) - //{ - - // // Dim As New (ObjVentas.IniciaTransacSQL()) - // // Dim As = Nothing - // // Dim MensajeAlert = New StringBuilder - // ClsVentas ObjVentas = new ClsVentas(); - // ClsInventarios ObjInventario = new ClsInventarios(ObjVentas.IniciaTransacSQL()); - // ClsContabilidad ObjConta = new ClsContabilidad(ObjVentas.IniciaTransacSQL()); - // ClsContratos ObjContr = new ClsContratos(ObjVentas.IniciaTransacSQL()); - // ClsOS ObjOS = new ClsOS(ObjVentas.IniciaTransacSQL()); - // ClsBancos ObjBancos = new ClsBancos(ObjVentas.IniciaTransacSQL()); - // ClsClientes ObjClientes = new ClsClientes(ObjVentas.IniciaTransacSQL()); - // ClsOIEventos ObjEventos = new ClsOIEventos(ObjVentas.IniciaTransacSQL()); - // ClsCGame ObjCGame = new ClsCGame(ObjVentas.IniciaTransacSQL()); - // ClsEdocumentacion ObjDocCliente = new ClsEdocumentacion(ObjVentas.IniciaTransacSQL()); - // ClsAcumuladores ObjAcum = new ClsAcumuladores(ObjVentas.IniciaTransacSQL()); - // ClsContPAQi ObjContPaq = null; - // //StringBuilder MensajeAlert = new StringBuilder() ; - // try - // { - // objfact.GuardarVenta(ref objfact, ref ObjVentas, ref ObjConta, ref ObjInventario, ref ObjContr, ref objfact.DtDetalle, objfact.CveNCaVincular, ref ObjContPaq, ref ObjBancos, ref ObjOS, ref ObjEventos, ref ObjCGame, ref ObjClientes, ObjAcum: ObjAcum); - - // } - // catch (Exception ) - // { - // objfact.CveVenta = -1; - // } - // if (ObjVentas.UpdateEstatusFactura(3, objxml.complemento.UUID, "", DateTime.ParseExact(objxml.comprobante.Fecha.Replace("T", " "), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), ObjVentas.CveVenta, CvePAC: 4)) - // if (objfact.CveVenta > 0 && objfact.ErrorList.Count == 0) - // { - // ObjVentas.Commit(); - // } - // else - // { - // foreach (string item in objfact.ErrorList) - // { - // strErrores.AppendLine("
"); - // strErrores.AppendLine(item); - // } - // objfact.CveVenta = -1; - // ObjVentas.RollBack(); - // } - // ObjVentas.Dispose(); - // ObjConta.Dispose(); - // ObjInventario.Dispose(); - // ObjCGame.Dispose(); - // ObjContr.Dispose(); - // ObjDocCliente.Dispose(); - // ObjClientes.Dispose(); - // ObjAcum.Dispose(); - - //} - //if (objfact != null && objfact.CveVenta > 0) - //{ - // CargaConciliacionemitidasSATGet(); - // Alert($"se ha agregado la factura correctamente.
Ver Factura ", ModExtensiones.TipoMensaje.ToastInformacion,timeout:25); - //} - //else { continuar = false; } - //if (!continuar) - //{ - // Alert($"no se pudo agregar la factura {strErrores.ToString()}", ModExtensiones.TipoMensaje.MsgAdvertencia); - //} - } - - protected Modelos.Factura GetFacturaFromXML(XmlSatCFDI objxml) - { - int CvePsReconstruccion = DdlPS.SelectedValue.ToEntero(); - int CveSubProyectoReconstruccion = DdlSubProyectoDatos.SelectedValue.ToEntero(); - //Modelos.Factura.MMensajeFactura resp; - - string Moneda = objxml.comprobante.Moneda; - if (objxml.comprobante.Version == "3.2") - { - switch (Moneda) - { - case "Peso Mexicano": Moneda = "MXN"; break; - case "Dolar Americano": Moneda = "USD"; break; - } - - } - string formadepago = objxml.comprobante.FormaPago; - string metododepago = objxml.comprobante.MetodoPago; - if (objxml.comprobante.Version == "3.2") - { - switch (objxml.comprobante.MetodoPago)//si es correcto estan invertidos - { - case "TRANSFERENCIA ELECTRONICA": formadepago = "03"; break; - default: formadepago = objxml.comprobante.MetodoPago; break; - } - - } - if (objxml.comprobante.Version == "3.2") - { - switch (objxml.comprobante.FormaPago)//si es correcto estan invertidos - { - case "PAGO EN UNA SOLA EXHIBICION": metododepago = "PUE"; break; - default: metododepago = objxml.comprobante.FormaPago; break; - } - - } - - - Modelos.Factura objfact = new Modelos.Factura(UsuarioActual) - { - TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio,//?que es esto - CveUsuario = UsuarioActual.CveUsuario, - CveEmpresa = UsuarioActual.CveEmpresa, - - FolioFiscal = objxml.complemento.UUID, - Serie = objxml.comprobante.Serie, - Folio = objxml.comprobante.Folio.ToEntero(),//Nota en el sat puede ser un string - Version = objxml.comprobante.Version, - TipoCambio = objxml.comprobante.TipoCambio, - //ConvertirPesos =false,//?para que sirve - MonedaSAT = objxml.comprobante.Moneda, - CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{Moneda}' ").ToEntero(), - Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{Moneda}' "), - TipoDocto = objxml.comprobante.TipoDeComprobanteSIG, - RefDocto = "", - CveMesa = -1, - Fecha = DateTime.ParseExact(objxml.comprobante.Fecha, "yyyy-MM-ddTHH:mm:ss", System.Globalization.CultureInfo.InvariantCulture), - CvePrePoliza = -1, - FechaPago = DateTime.Now, - MotivoDescuento = "", - FechaEjecucion = DateTime.Now, - UsuarioCreo = UsuarioActual.Usuario, - CveCondicionEntrega = -1, - CondicionEntrega = "", - NumeroCuenta = "", - CondicionesPago = 0, - FormaPago = 0, - PedidoContrato = "", - NumeroContrato = "", - DescripcionContrato = "", - CveCorte = -1, - TipoDocumento = objxml.comprobante.TipoDeComprobanteTexto, - Alfa1 = "", - Alfa2 = "", - Alfa3 = "", - CveContrato = -1 - }; - DataRow dr = get_GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimero(string.Format("Serie='{0}'", objfact.Serie)); - if (dr == null) { dr = get_GlobalDTSubProyectos(-1, CveSubProyectoReconstruccion, UsuarioActual.CveEmpresa, 1).Rows[0]; } - if (dr != null) - { - objfact.CveSubProyecto = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.CveSubProyectoCobranza = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.CveSubProyectoEjecucion = dr["CveSubProyecto"].ToString().ToEntero(); - objfact.SubProyecto = new Modelos.SubProyectoModel(dr); - objfact.SubProyectoMatriz = new Modelos.SubProyectoModel(get_GlobalDTSubProyectos(-1, CveSubProyecto: -1, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")); - - } - using (ClsClientes objClientes = new ClsClientes()) - { - if (objClientes.GetClientes(-1, "-1", "-1", "-1", objxml.receptor.Rfc, "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente: -1) && objClientes.DtResultados.Rows.Count > 0) - { - DataRow drCliente = objClientes.DtResultados.Rows[0]; - objfact.CveCliente = drCliente["CveCliente"].ToString().ToEntero(); - objfact.SetCliente(); - - - } - } - - objfact.CveAlmacen = -1; - objfact.CveFormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("CveFormaPago", $"ClaveFormaPagoSAT = '{formadepago}'").ToEntero(); - objfact.FormaPagoSAT33 = objxml.comprobante.FormaPago; - objfact.FormaPago33 = objxml.comprobante.FormaPagoTexto; - objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero(); - objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero(); - objfact.ClaveMetodoPagoSAT = objxml.comprobante.MetodoPago; - objfact.MetodoPago33 = objxml.comprobante.MetodoPagoTexto; - objfact.CveUsoCFDI = get_GlobalDTSATUsosCFDI(-1).FiltroPrimeroValor("CveUsoCFDI", $"UsoCFDI = '{objxml.receptor.UsoCFDI}'").ToEntero(); - objfact.UsoCFDI = objxml.receptor.UsoCFDITexto; - objfact.ClaveUsoCFDI = objxml.receptor.UsoCFDI; - objfact.CveClienteSucursal = -1; - - objfact.DtDetalle = CreaDTDetalle(UsuarioActual, objxml.conceptos, objfact.CveSubProyecto, CvePsReconstruccion, objxml); - - objfact.TipoCambioDolares = objxml.comprobante.TipoCambio; - objfact.SubTotal = objxml.comprobante.SubTotal; - objfact.Descuento = objxml.comprobante.Descuento; - objfact.Amortizacion = 0; - objfact.IVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Traslados").Sum(item => item.Importe); - objfact.RetIVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Retenciones").Sum(item => item.Importe); - objfact.RetISR = objxml.Impuestos.Where(x => (x.Impuesto == "001" || x.Impuesto == "ISR") && x.Tipo == "Retenciones").Sum(item => item.Importe); - objfact.IEPS = objxml.Impuestos.Where(x => (x.Impuesto == "003" || x.Impuesto == "IEPS")).Sum(item => item.Importe); - objfact.Total = objxml.comprobante.Total; - objfact.TotalOtrosConceptos = 0; - - - objfact.Observaciones = ""; - objfact.OrdenCompra = ""; - objfact.PedidoContrato = ""; - objfact.ObservacionesAlmacen = ""; - if (strErrores.Length > 0) - { - objfact = null; - } - return objfact; - } - private DataTable CreaDTDetalle(Usuario UsuarioActual, List conceptos, int CveSubProyecto, int CvePsReconstruccion, XmlSatCFDI objxml) - { - bool continuar = true; - var TmpDT = new DataTable(); - #region TmpDT Fields - TmpDT.Columns.Add("CveVenta", typeof(int)); - TmpDT.Columns.Add("Consec", typeof(int)); - TmpDT.Columns.Add("Cantidad", typeof(decimal)); - TmpDT.Columns.Add("Codigo", typeof(string)); - TmpDT.Columns.Add("CveUM", typeof(int)); - TmpDT.Columns.Add("UM", typeof(string)); - TmpDT.Columns.Add("SATClaveUM", typeof(string)); - TmpDT.Columns.Add("CveClasificacion", typeof(int)); - TmpDT.Columns.Add("Clasificacion", typeof(string)); - TmpDT.Columns.Add("CvePS", typeof(int)); - TmpDT.Columns.Add("PS", typeof(string)); - TmpDT.Columns.Add("CodigoPS", typeof(string)); - TmpDT.Columns.Add("SATClaveProdServ", typeof(string)); - TmpDT.Columns.Add("NoIdentificacion", typeof(string)); - TmpDT.Columns.Add("CveTipoPS", typeof(int)); - TmpDT.Columns.Add("CveTipoInvPS", typeof(int)); - TmpDT.Columns.Add("Serie", typeof(string)); - TmpDT.Columns.Add("CuentaPredial", typeof(string)); - TmpDT.Columns.Add("Obs", typeof(string)); - TmpDT.Columns.Add("TiempoEntrega", typeof(string)); - TmpDT.Columns.Add("PU", typeof(decimal)); - TmpDT.Columns.Add("IVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteIVA", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeIVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteRetIVA", typeof(decimal)); - TmpDT.Columns.Add("ImporteRetISR", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeRetIVA", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeRetISR", typeof(decimal)); - TmpDT.Columns.Add("ImporteIEPS", typeof(decimal)); - TmpDT.Columns.Add("IEPS", typeof(decimal)); - TmpDT.Columns.Add("PorcentajeIEPS", typeof(decimal)); - TmpDT.Columns.Add("Descuento", typeof(decimal)); - TmpDT.Columns.Add("TipoDescuento", typeof(int)); - TmpDT.Columns.Add("TotalImporte", typeof(decimal)); - TmpDT.Columns.Add("Total", typeof(decimal)); - // Para uso del módulo contable - TmpDT.Columns.Add("AsientoContableVentas", typeof(int)); - TmpDT.Columns.Add("IdCtaContVentas", typeof(int)); - TmpDT.Columns.Add("AplicaParaConcepto", typeof(bool)); - TmpDT.Columns.Add("CveProyecto", typeof(int)); - TmpDT.Columns.Add("Proyecto", typeof(string)); - TmpDT.Columns.Add("CveSubProyecto", typeof(int)); - TmpDT.Columns.Add("SubProyecto", typeof(string)); - // TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto - TmpDT.Columns.Add("CvePresupuestoIngreso", typeof(int)); - TmpDT.Columns.Add("CveFuenteRecaudacion", typeof(int)); - // Contratos - TmpDT.Columns.Add("CveContratoDetalle", typeof(int)); - // Remisiones a Facturas - TmpDT.Columns.Add("CveVentaDetalle", typeof(int)); - TmpDT.Columns.Add("CveVentaDetalleRemision", typeof(int)); - TmpDT.Columns.Add("CveVentaDetalleCotizacion", typeof(int)); - // Pedido2 a Facturas - TmpDT.Columns.Add("CveVentaDetallePedido2", typeof(int)); - TmpDT.Columns.Add("Origen", typeof(int)); - // Ordenes Servicio - TmpDT.Columns.Add("CveOS", typeof(int)); - TmpDT.Columns.Add("CveOSDetalle", typeof(int)); - TmpDT.Columns.Add("SeFacturara", typeof(int)); - TmpDT.Columns.Add("Folio", typeof(int)); - TmpDT.Columns.Add("Estatus", typeof(string)); - // Ordenamiento - TmpDT.Columns.Add("Orden", typeof(int)); - TmpDT.Columns.Add("TipoDocto", typeof(string)); - // OC - TmpDT.Columns.Add("CveOrdenCompraDetalle", typeof(int)); - TmpDT.Columns.Add("EntregaDirecta", typeof(int)); - TmpDT.Columns.Add("CveMovimientoDetallePedido", typeof(int)); - TmpDT.Columns.Add("CantidadFacturadaRem", typeof(decimal)); - TmpDT.Columns.Add("CantidadFacturadaCot", typeof(decimal)); - TmpDT.Columns.Add("CantidadInventario", typeof(decimal)); - TmpDT.Columns.Add("ClaveSATFraccionArancelaria", typeof(string)); - TmpDT.Columns.Add("ClaveSATUnidadAduana", typeof(string)); - TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", typeof(string)); - TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", typeof(string)); - TmpDT.Columns.Add("CveTamaño", typeof(int)); - #endregion - foreach (CFDIConcepto item in conceptos) - { - DataRow DrPS = null;// get_GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("PS ={0}",item.Descripcion)); - - DataRow DrSubProyecto = null; - DataRow DrUmSat = null; - DataRow DrUm = null; - if (continuar) - { - using (ClsProductosServicios obj = new ClsProductosServicios()) - { - if (obj.GetPS(-1, -1, UsuarioActual.CveEmpresa, PS: item.Descripcion) && obj.DtResultados.Rows.Count > 0) - { - DrPS = obj.DtResultados.Rows[0]; - } - else if (obj.GetPS(CvePsReconstruccion, -1, UsuarioActual.CveEmpresa) && obj.DtResultados.Rows.Count > 0) - { - - DrPS = obj.DtResultados.Rows[0]; - } - - } - DrSubProyecto = get_GlobalDTSubProyectos(-1, CveSubProyecto, UsuarioActual.CveEmpresa).Rows[0]; - - - if (objxml.comprobante.Version == "3.2") - { - item.ClaveUnidad = item.Unidad; - switch (item.ClaveUnidad) - { - case "TON": item.ClaveUnidad = "A75"; break; - case "No aplica": item.ClaveUnidad = "ACT"; break; - case "LITROS": item.ClaveUnidad = "E32"; break; - case "M3-KM": item.ClaveUnidad = "M73"; break; - } - - } - - DrUmSat = GlobalDTPSATUM.FiltroPrimero(string.Format("SATClaveUnidadMedida='{0}'", item.ClaveUnidad)); - } - if (continuar && DrUmSat == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida en el catalogo del sat '{item.ClaveUnidad}', favor de contactar a soporte tecnico."); } - if (continuar) - { - DrUm = get_GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("CveUnidadMedidaSAT={0}", DrUmSat["CveUnidadMedidaSAT"])); - } - if (continuar && DrUm == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida relacionada a la clave del sat '{item.ClaveUnidad}', favor de asignarla en el catalogo de unidad de medida."); } - if (continuar) - { - //no se encontro una undidad de medida para - DataRow Row = TmpDT.NewRow(); - Row["CveProyecto"] = DrSubProyecto["CveProyecto"].ToString().ToEntero(); - Row["Proyecto"] = DrSubProyecto["Proyecto"].ToString(); - Row["CveSubProyecto"] = CveSubProyecto; - Row["SubProyecto"] = DrSubProyecto["SubProyecto"].ToString(); - Row["Serie"] = ""; - Row["TiempoEntrega"] = ""; - Row["Orden"] = TmpDT.Rows.Count + 1; - Row["Cantidad"] = item.Cantidad; - Row["CveUM"] = DrUm["CveUnidadMedida"]; - Row["UM"] = DrUm["UnidadMedida"]; - Row["CveClasificacion"] = DrPS["CveClasificacion"]; - Row["Clasificacion"] = DrPS["Clasificacion"]; - Row["CvePS"] = DrPS["CvePS"]; - Row["Obs"] = item.Descripcion; - - //TotalCalculableImpuestos = (Cantidad * PU) - Descuento; - - Row["PU"] = item.ValorUnitario; - Row["Codigo"] = DrPS["Codigo"]; - Row["NoIdentificacion"] = DrPS["Codigo"]; - Row["ClaveSATFraccionArancelaria"] = DrPS["ClaveSATFraccionArancelaria"]; - Row["ClaveSATUnidadAduana"] = DrPS["ClaveSATUnidadAduana"]; - Row["ClaveSATFraccionArancelariaDescripcion"] = DrPS["ClaveSATFraccionArancelariaDescripcion"]; - Row["ClaveSATUnidadAduanaDescripcion"] = DrPS["ClaveSATUnidadAduanaDescripcion"]; - Row["Consec"] = TmpDT.Rows.Count + 1; - Row["PS"] = item.Descripcion; - Row["CodigoPS"] = DrPS["PSCodigo"].ToString(); - Row["CveTipoPS"] = DrPS["CveTipoPS"]; - Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"]; - Row["CveTamaño"] = DrPS["CveTamaño"]; - CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado"); - decimal sumaimpuesto = 0; - decimal PorcentajeIVA = 0; - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - PorcentajeIVA = decimpuesto / 100; - Row["PorcentajeIVA"] = PorcentajeIVA; - Row["ImporteIVA"] = impuesto.Importe;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2); - sumaimpuesto += impuesto.Importe; - } - else - { - Row["PorcentajeIVA"] = 0; - Row["ImporteIVA"] = 0; - if (objxml.comprobante.Version == "3.2") - { - if (item.Importe > 0) - { - PorcentajeIVA = .16M; - Row["PorcentajeIVA"] = PorcentajeIVA; - Row["ImporteIVA"] = item.Importe * PorcentajeIVA;//Math.Round(((item.Importe / (1 + PorcentajeIVA))*.16M),2); - - } - } - } - Row["IVA"] = Row["ImporteIVA"]; - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeIEPS"] = decimpuesto / 100; - Row["ImporteIEPS"] = impuesto.Importe; - Row["IEPS"] = impuesto.Importe; - sumaimpuesto += impuesto.Importe; - } - else - { - Row["PorcentajeIEPS"] = 0; - Row["ImporteIEPS"] = 0; - Row["IEPS"] = 0; - } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "001" && x.Tipo == "Retencion"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeRetISR"] = decimpuesto / 100; - Row["ImporteRetISR"] = impuesto.Importe; - sumaimpuesto -= impuesto.Importe; - } - else - { - Row["ImporteRetISR"] = 0; - Row["PorcentajeRetISR"] = 0; - } - impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Retencion"); - if (impuesto != null) - { - decimal decimpuesto = 0; - decimal.TryParse(impuesto.TasaOCuota, out decimpuesto); - Row["PorcentajeRetIVA"] = decimpuesto / 100; - Row["ImporteRetIVA"] = impuesto.Importe; - sumaimpuesto -= impuesto.Importe; - } - else - { - Row["ImporteRetIVA"] = 0; - Row["PorcentajeRetIVA"] = 0; - } - Row["Descuento"] = item.Descuento; - Row["TipoDescuento"] = "2"; - - //Row["Total"] = item.Importe - sumaimpuesto; - Row["Total"] = item.Importe / (1 + PorcentajeIVA); - Row["TotalImporte"] = item.Importe; - - Row["SATClaveProdServ"] = item.ClaveProdServ; - Row["SATClaveUM"] = item.ClaveUnidad; - - Row["EntregaDirecta"] = "-1"; - // Contratos - Row["CveContratoDetalle"] = -1; - Row["CveVentaDetalle"] = -1; - Row["CveMovimientoDetallePedido"] = -1; - Row["CveOrdenCompraDetalle"] = -1; - Row["CveVentaDetalleRemision"] = -1; - Row["CveVentaDetalleCotizacion"] = -1; - Row["CveVentaDetallePedido2"] = -1; - Row["CuentaPredial"] = item.CuentaPredial; - - TmpDT.Rows.Add(Row); - } - } - - - return TmpDT; - } - - - - protected void LnkAceptarDefault_Click(object sender, EventArgs e) - { - RegistraScript("$('#DModalDefaults').modal('hide');"); - registrarventa((GridViewRow)CurrentRow); - //foreach (GridViewRow gvrow in GVConciliacionemitidasSAT.Rows) - //{ - - // registrarventa(gvrow); - //} - } - - protected void BtnConsultar_Click(object sender, EventArgs e) - { - CargaRepConciliacionSatGET(); - } - - protected void GVConciliacionemitidasSAT_RowDataBound(object sender, GridViewRowEventArgs e) - { - if (e.Row.RowType == DataControlRowType.DataRow) - { - string navurl = ""; - if (e.Row.DBCampo("Tipo") == "1") - { - string RutaXml = e.Row.DBCampo("RutaXml"); - //if (RutaXml.IndexOf("Empresas")>0) - //{ - // RutaXml = RutaXml.Substring(RutaXml.IndexOf("Empresas")); - //} - navurl = string.Format("RepConciliacionEmitidosSat.aspx?op={0}", Extensiones.ModExtensiones.Encripta(e.Row.DataKey("RutaXml"))); - } - else - { - navurl = string.Format("/Compras/PopUpVerFactura.aspx?P={0}", Extensiones.ModExtensiones.Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveVenta"), "XML", e.Row.DBCampo("SerieFolio"), e.Row.DBCampo("TipoDocto")))); - } - e.Row.FCHyperLink("HypXml").NavigateUrl = navurl; - } - //String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto")))) - } - - protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e) - { - - int CveClasificacion = DdlClasificacion.SelectedValue.ToEntero(); - if (UsuarioActual.Empresa.Funcionalidad(141).ToString() == "1") - { - - DdlPS.setEsWebService(true); - DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString()); - DdlPS.ddlWS.Attributes.Add("data-pagina", "ventas/ventas"); - DdlPS.ddlWS.Attributes.Add("data-Estatus", "1"); - } - else - { - - DdlPS.setEsWebService(false); - DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1); - DdlPS.ddl.DataBind(); - } - UpModalDefaults.Update(); - } -} -namespace ADSistemaLibrary2.SatXml -{ - public class XmlSatCFDI - { - public XmlSatCFDI() - { - comprobante = new CFDIComprobante(); - emisor = new CFDIEmisor(); - receptor = new CFDIReceptor(); - complemento = new CFDIComplemento(); - cFDIRelacionados = new List(); - conceptos = new List(); - Impuestos = new List(); - } - public CFDIComprobante comprobante; - public CFDIEmisor emisor; - public CFDIReceptor receptor; - public CFDIComplemento complemento; - public List cFDIRelacionados; - public List conceptos; - public List Impuestos; - public List GetConceptosforpdf() - { - List lcon = new List(); - if (conceptos != null) - { - int _orden = 0; - foreach (CFDIConcepto item in conceptos) - { - _orden += 1; - CFDIConcepto_I con = new CFDIConcepto_I - { - tipo = 1, - orden = _orden, - ClaveProdServ = item.ClaveProdServ, - NoIdentificacion = item.NoIdentificacion, - Cantidad = item.Cantidad, - ClaveUnidad = item.ClaveUnidad, - Unidad = item.Unidad, - ValorUnitario = item.ValorUnitario, - Importe = item.Importe, - Descuento = item.Descuento, - NumeroPedimento = item.NumeroPedimento, - CuentaPredial = item.CuentaPredial, - Descripcion = item.Descripcion - }; - int index = 0; - foreach (CFDIConceptoImpuesto Imp in item.Impuestos) - { - index++; - if (index > 1) - { - lcon.Add(con); - con = new CFDIConcepto_I - { - tipo = 2, - orden = _orden, - }; - - } - - con.Impuesto = Imp.ImpuestoTexto; - con.Impuesto_Tipo = Imp.Tipo; - con.Impuesto_Base = Imp.Base; - con.Impuesto_TipoFactor = Imp.TipoFactor; - con.Impuesto_TasaOCuota = Imp.TasaOCuota; - con.Impuesto_Importe = Imp.Importe; - } - lcon.Add(con); - } - } - - return lcon; - } - - public static XmlSatCFDI readXML(string fileUrl) - { - XmlSatCFDI xmlCFDI = new XmlSatCFDI(); - bool canread = true; - //keys - string keyComprobante = "Comprobante"; - string keyCfdiRelacionados = "CfdiRelacionados"; - string keyEmisor = "Emisor"; - string keyReceptor = "Receptor"; - string keyConceptos = "Conceptos"; - string keyImpuestos = "Impuestos"; - string keyComplemento = "Complemento"; - //endkeys - string[] PrimerNivel = new string[] { keyCfdiRelacionados, keyEmisor, keyReceptor, keyConceptos, keyImpuestos, keyComplemento }; - //(canread = xtr.Read()) para evitar ciclos infinitos, todos los .Read() los guardo en la variable Canread y en los while reviso primero esta variable - if (File.Exists(fileUrl)) - { - XmlReaderSettings settings = new XmlReaderSettings(); - settings.ConformanceLevel = ConformanceLevel.Fragment; - settings.IgnoreWhitespace = true; - settings.IgnoreComments = true; - using (XmlReader xtr = XmlReader.Create(fileUrl, settings)) - { - - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:","") == keyComprobante)) - { - //if (xtr.NodeType != XmlNodeType.Element) { while (xtr.Read() && xtr.NodeType != XmlNodeType.Element) { } } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComprobante) - { - int Nivel = xtr.Depth; - bool cont = xtr.MoveToFirstAttribute(); - while (cont) - { - - switch (xtr.Name.ToUpper()) - { - case "XMLNS:CFDI": xmlCFDI.comprobante.xmlns_cfdi = xtr.Value; break; - case "XMLNS:XSI": xmlCFDI.comprobante.xmlns_xsi = xtr.Value; break; - case "XSI:SCHEMALOCATION": xmlCFDI.comprobante.xsi_schemaLocation = xtr.Value; break; - case "VERSION": xmlCFDI.comprobante.Version = xtr.Value; break; - case "SERIE": xmlCFDI.comprobante.Serie = xtr.Value; break; - case "FOLIO": xmlCFDI.comprobante.Folio = xtr.Value; break; - case "FECHA": xmlCFDI.comprobante.Fecha = xtr.Value; break; - case "MONEDA": xmlCFDI.comprobante.Moneda = xtr.Value; break; - case "SUBTOTAL": decimal SubTotal = 0; decimal.TryParse(xtr.Value, out SubTotal); xmlCFDI.comprobante.SubTotal = SubTotal; break; - case "TOTAL": decimal Total = 0; decimal.TryParse(xtr.Value, out Total); xmlCFDI.comprobante.Total = Total; break; - case "DESCUENTO": decimal Descuento = 0; decimal.TryParse(xtr.Value, out Descuento); xmlCFDI.comprobante.Descuento = Descuento; break; - case "TIPOCAMBIO": decimal TipoCambio = 0; decimal.TryParse(xtr.Value, out TipoCambio); xmlCFDI.comprobante.TipoCambio = TipoCambio; break; - case "TIPODECOMPROBANTE": xmlCFDI.comprobante.TipoDeComprobante = xtr.Value; break; - case "FORMAPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break; - case "FORMADEPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break; - case "METODOPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break; - case "METODODEPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break; - case "CONDICIONESDEPAGO": xmlCFDI.comprobante.CondicionesDePago = xtr.Value; break; - case "LUGAREXPEDICION": xmlCFDI.comprobante.LugarExpedicion = xtr.Value; break; - case "CONFIRMACION": xmlCFDI.comprobante.Confirmacion = xtr.Value; break; - case "NOCERTIFICADO": xmlCFDI.comprobante.NoCertificado = xtr.Value; break; - case "SELLO": xmlCFDI.comprobante.Sello = xtr.Value; break; - case "CERTIFICADO": xmlCFDI.comprobante.Certificado = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - cont = xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > Nivel) - { - if (PrimerNivel.Contains(xtr.Name.Replace("cfdi:", ""))) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyCfdiRelacionados) - { - int cDepth = xtr.Depth; - - string TipoRelacion = null; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "TIPORELACION": TipoRelacion = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - if (xtr.Name.Replace("cfdi:", "") == "CfdiRelacionado") - { - CFDIRelacionado cfdir = new CFDIRelacionado(); - cfdir.TipoRelacion = TipoRelacion; - cfdir.UUID = xtr.GetAttribute("UUID"); - xmlCFDI.cFDIRelacionados.Add(cfdir); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyEmisor) - { - - - int curentNivel = xtr.Depth; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "REGIMENFISCAL": xmlCFDI.emisor.RegimenFiscal = xtr.Value; break; - case "NOMBRE": xmlCFDI.emisor.Nombre = xtr.Value; break; - case "RFC": xmlCFDI.emisor.Rfc = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel) - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyReceptor) - { - int curentNivel = xtr.Depth; - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "RFC": xmlCFDI.receptor.Rfc = xtr.Value; break; - case "NOMBRE": xmlCFDI.receptor.Nombre = xtr.Value; break; - case "RESIDENCIAFISCAL": xmlCFDI.receptor.ResidenciaFiscal = xtr.Value; break; - case "NUMREGIDTRIB": xmlCFDI.receptor.NumRegIdTrib = xtr.Value; break; - case "USOCFDI": xmlCFDI.receptor.UsoCFDI = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - - while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel) - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyConceptos) - { - int cDepth = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - if (xtr.Name.Replace("cfdi:", "") == "Concepto") - { - int cDepthb = xtr.Depth; - CFDIConcepto concepto = new CFDIConcepto(); - - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "CLAVEPRODSERV": concepto.ClaveProdServ = xtr.Value; break; - case "NOIDENTIFICACION": concepto.NoIdentificacion = xtr.Value; break; - case "CANTIDAD": concepto.Cantidad = xtr.Value; break; - case "CLAVEUNIDAD": concepto.ClaveUnidad = xtr.Value; break; - case "UNIDAD": concepto.Unidad = xtr.Value; break; - case "VALORUNITARIO": decimal ValorUnitario = 0; decimal.TryParse(xtr.Value, out ValorUnitario); concepto.ValorUnitario = ValorUnitario; ; break; - case "IMPORTE": decimal Importe = 0; decimal.TryParse(xtr.Value, out Importe); concepto.Importe = Importe; ; break; - case "DESCUENTO": decimal DDescuento = 0; decimal.TryParse(xtr.Value, out DDescuento); concepto.Descuento = DDescuento; ; break; - case "DESCRIPCION": concepto.Descripcion = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepthb) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "Impuestos") - { - int cDepthc = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepthc) - { - if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion") - { - CFDIConceptoImpuesto impuesto = new CFDIConceptoImpuesto(); - impuesto.Impuesto = xtr.GetAttribute("Impuesto"); - impuesto.Tipo = xtr.LocalName; - decimal Base = 0; - decimal.TryParse(xtr.GetAttribute("Base"), out Base); - impuesto.Base = Base; - impuesto.TipoFactor = xtr.GetAttribute("TipoFactor"); - decimal tasaOCuota = 0; - decimal.TryParse(xtr.GetAttribute("TasaOCuota"), out tasaOCuota); - impuesto.TasaOCuota = impuesto.TipoFactor == "Tasa" ? (tasaOCuota * 100).ToString("N4") : xtr.GetAttribute("TasaOCuota"); - decimal ImImporte = 0; - decimal.TryParse(xtr.GetAttribute("Importe"), out ImImporte); - impuesto.Importe = ImImporte; - - concepto.Impuestos.Add(impuesto); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - else - { - bool rednew = true; - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "InformacionAduanera") - { - concepto.NumeroPedimento = xtr.GetAttribute("NumeroPedimento"); - rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "CuentaPredial") - { - concepto.CuentaPredial = xtr.GetAttribute("CuentaPredial"); - rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - if (rednew) { while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } } - - } - } - - xmlCFDI.conceptos.Add(concepto); - } - } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyImpuestos) - { - int cDepth = xtr.Depth; - - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > cDepth) - { - CFDIImpuesto impuest = new CFDIImpuesto(); - if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion" && xmlCFDI.comprobante.Version != null) - { - impuest.Tipo = xtr.LocalName == "Traslado" ? "Traslados" : (xtr.LocalName == "Retencion" ? "Retenciones" : ""); - impuest.Impuesto = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Impuesto") : xtr.GetAttribute("impuesto"); - impuest.TipoFactor = xtr.GetAttribute("TipoFactor"); - impuest.TasaOCuota = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("TasaOCuota") : xtr.GetAttribute("tasa"); - decimal ImImporte = 0; - decimal.TryParse((xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Importe") : xtr.GetAttribute("importe")), out ImImporte); - impuest.Importe = ImImporte; - xmlCFDI.Impuestos.Add(impuest); - } - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComplemento) - { - int cDepth = xtr.Depth; - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - { - - - - - } - - - while (canread && xtr.Depth > cDepth) - { - if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital" && xmlCFDI.comprobante.Version != null) - { - xmlCFDI.complemento.xmlns_tfd = xtr.GetAttribute("xmlns:tfd"); - xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation"); - xmlCFDI.complemento.Version = xtr.GetAttribute("Version"); - xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID"); - xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado"); - xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif"); - xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD"); - xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT"); - xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT"); - - } else if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName.ToUpper() == "NOMINA" && xmlCFDI.comprobante.Version != null) - { - xmlCFDI.complemento.nomina12 = new CFDINomina(); - //Version="1.2" TipoNomina="E" FechaPago="2021-12-08" - //="2021-12-08" ="2021-12-08" - //="1" ="5026.31" ="254.34" - cont = xtr.MoveToFirstAttribute(); - while (cont) - { - switch (xtr.Name.ToUpper()) - { - case "FECHAPAGO": xmlCFDI.complemento.nomina12.FechaPago = xtr.Value.ToDateTime(); break; - case "FECHAINICIALPAGO": xmlCFDI.complemento.nomina12.FechaInicio = xtr.Value; break; - case "FECHAFINALPAGO": xmlCFDI.complemento.nomina12.FechaFin = xtr.Value; break; - case "NUMDIASPAGADOS": xmlCFDI.complemento.nomina12.NumDiasPagados= xtr.Value.ToEntero(); break; - case "TIPONOMINA": xmlCFDI.complemento.nomina12.TipoNomina = xtr.Value; break; - case "Version": xmlCFDI.complemento.nomina12.Version = xtr.Value; break; - } - cont = xtr.MoveToNextAttribute(); - } - xtr.MoveToFirstAttribute(); - } - else if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "Pagos" && xmlCFDI.comprobante.Version != null) - { - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - xmlCFDI.complemento.Pagos = new CFDIPago(); - int depthpagos = xtr.Depth; - bool conts = xtr.MoveToFirstAttribute(); - while (conts) - { - - decimal Base = 0; - switch (xtr.Name.ToUpper()) - { - case "FECHAPAGO": xmlCFDI.complemento.Pagos.FechaPago = xtr.Value; break; - case "FORMADEPAGOP": xmlCFDI.complemento.Pagos.FormaDePagoP = xtr.Value; break; - case "FORMADEPAGOPTEXT": xmlCFDI.complemento.Pagos.FormaDePagoPText = xtr.Value; break; - case "MONEDAP": xmlCFDI.complemento.Pagos.MonedaP = xtr.Value; break; - case "MONTO": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.Monto = Base; break; - case "TIPOCAMBIOP": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.TipoCambioP = Base; break; - case "NUMOPERACION": xmlCFDI.complemento.Pagos.NumOperacion = xtr.Value; break; - case "NOMBANCOORDEXT": xmlCFDI.complemento.Pagos.NomBancoOrdExt = xtr.Value; break; - case "RFCEMISORCTAORD": xmlCFDI.complemento.Pagos.RfcEmisorCtaOrd = xtr.Value; break; - case "CTAORDENANTE": xmlCFDI.complemento.Pagos.CtaOrdenante = xtr.Value; break; - case "RFCEMISORCTABEN": xmlCFDI.complemento.Pagos.RfcEmisorCtaBen = xtr.Value; break; - case "CTABENEFICIARIO": xmlCFDI.complemento.Pagos.CtaBeneficiario = xtr.Value; break; - } - conts = xtr.MoveToNextAttribute(); - } - conts = xtr.MoveToFirstAttribute(); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - while (canread && xtr.Depth > depthpagos) - { - CFDIPagoDoctoRelacionado objpago = new CFDIPagoDoctoRelacionado(); - conts = xtr.MoveToFirstAttribute(); - while (conts) - { - - decimal Basep = 0; - switch (xtr.Name.ToUpper()) - { - case "IDDOCUMENTO": objpago.IdDocumento = xtr.Value; break; - case "SERIE": objpago.Serie = xtr.Value; break; - case "FOLIO": objpago.Folio = xtr.Value; break; - case "MONEDADR": objpago.MonedaDR = xtr.Value; break; - case "METODODEPAGODR": objpago.MetodoDePagoDR = xtr.Value; break; - case "NUMPARCIALIDAD": objpago.NumParcialidad = xtr.Value; break; - case "IMPSALDOANT": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoAnt = Basep; break; - case "IMPPAGADO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpPagado = Basep; break; - case "IMPSALDOINSOLUTO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoInsoluto = Basep; break; - - } - conts = xtr.MoveToNextAttribute(); - } - conts = xtr.MoveToFirstAttribute(); - xmlCFDI.complemento.Pagos.doctosRelacionados.Add(objpago); - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - } - else - { - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - - } - } - } - } - else - { - //si no entro en ninguna de los anteriores no se debe ciclar - while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } - } - } - } - - } - } - if (xmlCFDI.comprobante.Version == "3.3" || xmlCFDI.comprobante.Version == "3.2") - { - return xmlCFDI; - } - else - { - return null; - } - } - - public class utilValores - { - public utilValores(string nombre, string valor) - { - Nombre = nombre; - Valor = valor; - } - public string Nombre { get; set; } - public string Valor { get; set; } - } - public class utilImage - { - public utilImage(byte[] imagenByte) - { - ImagenByte = imagenByte; - } - public byte[] ImagenByte { get; set; } - } - } - - public class CFDIComplemento - { - - public string xmlns_tfd { get; set; } - public string xsi_schemaLocation { get; set; } - public string Version { get; set; } - public string UUID { get; set; } - public string FechaTimbrado { get; set; } - public string RfcProvCertif { get; set; } - public string SelloCFD { get; set; } - public string NoCertificadoSAT { get; set; } - public string SelloSAT { get; set; } - public CFDIPago Pagos { get; set; } - public CFDINomina nomina12 { get; set; } - public string CadenaOriginal - { - get - { - return string.Format("||{0}|{1}|{2}|{3}|{4}|{5}||", Version, UUID, FechaTimbrado, RfcProvCertif, SelloCFD, NoCertificadoSAT); - } - } - - } - public class CFDIComprobante - { - public string xmlns_cfdi { get; set; } - public string xmlns_xsi { get; set; } - public string xsi_schemaLocation { get; set; } - public string Version { get; set; } - public string Serie { get; set; } - public string Folio { get; set; } - public string Fecha { get; set; } - public string Moneda { get; set; } - public decimal SubTotal { get; set; } - public decimal Total { get; set; } - public decimal Descuento { get; set; } - public decimal TipoCambio { get; set; } - public string TipoDeComprobante { get; set; } - - public string TipoDeComprobanteSIG - { - get - { - string retorno = ""; - if (Version == "3.3") - { - switch (TipoDeComprobante) - { - case "I": - retorno = "Ing"; - break; - case "E": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - break; - } - } - else if (Version == "3.2") - { - switch (TipoDeComprobante) - { - case "ingreso": - retorno = "Ing"; - break; - case "egreso": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - break; - } - } - else { retorno = TipoDeComprobante; } - return retorno; - } - } - public string TipoDeComprobanteTexto - { - get - { - string retorno = ""; - - if (Version == "3.3") - { - switch (TipoDeComprobante) - { - case "I": - retorno = "Ingreso"; - break; - case "E": - retorno = "Egreso"; - break; - case "P": - retorno = "Pago"; - break; - case "T": - retorno = "Traslado"; - break; - case "N": - retorno = "Nómina"; - break; - - default: - retorno = TipoDeComprobante; - break; - } - } - else if (Version == "3.2") - { - switch (TipoDeComprobante) - { - case "ingreso": - retorno = "Ing"; - break; - case "egreso": - retorno = "Egs"; - break; - case "P": - retorno = "PA"; - break; - //case "T": - // retorno = "Traslado"; - // break; - //case "N": - // retorno = "Nómina"; - // break; - - default: - retorno = TipoDeComprobante; - break; - } - } - else { retorno = TipoDeComprobante; } - return retorno; - } - } - public string FormaPago { get; set; } - - public string FormaPagoTexto - { - get - { - string retorno = ""; - - switch (FormaPago) - { - case "01": retorno = "Efectivo"; break; - case "02": retorno = "Cheque nominativo"; break; - case "03": retorno = "Transferencia electrónica de fondos"; break; - case "04": retorno = "Tarjeta de crédito"; break; - case "05": retorno = "Monedero electrónico"; break; - case "06": retorno = "Dinero electrónico"; break; - case "08": retorno = "Vales de despensa"; break; - case "12": retorno = "Dación en pago"; break; - case "13": retorno = "Pago por subrogación"; break; - case "14": retorno = "Pago por consignación"; break; - case "15": retorno = "Condonación"; break; - case "17": retorno = "Compensación"; break; - case "23": retorno = "Novación"; break; - case "24": retorno = "Confusión"; break; - case "25": retorno = "Remisión de deuda"; break; - case "26": retorno = "Prescripción o caducidad"; break; - case "27": retorno = "A satisfacción del acreedor"; break; - case "28": retorno = "Tarjeta de débito"; break; - case "29": retorno = "Tarjeta de servicios"; break; - case "30": retorno = "Aplicación de anticipos"; break; - case "31": retorno = "Intermediario pagos"; break; - case "99": retorno = "Por definir"; break; - default: retorno = FormaPago; break; - } - return retorno; - } - } - public string MetodoPago { get; set; } - public string MetodoPagoTexto - { - get - { - string retorno = ""; - - switch (MetodoPago) - { - case "PUE": retorno = "Pago en una sola exhibición"; break; - case "PPD": retorno = "Pago en parcialidades o diferido"; break; - default: retorno = MetodoPago; break; - } - return retorno; - } - } - public string CondicionesDePago { get; set; } - public string LugarExpedicion { get; set; } - public string Confirmacion { get; set; } - public string NoCertificado { get; set; } - public string Sello { get; set; } - public string Certificado { get; set; } - - } - - public class CFDIConcepto - { - public CFDIConcepto() - { - Impuestos = new List(); - } - public string ClaveProdServ { get; set; } - public string NoIdentificacion { get; set; } - public string Cantidad { get; set; } - public string ClaveUnidad { get; set; } - public string Unidad { get; set; } - public decimal ValorUnitario { get; set; } - public decimal Importe { get; set; } - public decimal Descuento { get; set; } - public string NumeroPedimento { get; set; } - public string CuentaPredial { get; set; } - public string Descripcion { get; set; } - public List Impuestos { get; set; } - } - - public class CFDIConcepto_I - { - public int tipo { get; set; } - public int orden { get; set; } - public string ClaveProdServ { get; set; } - public string NoIdentificacion { get; set; } - public string Cantidad { get; set; } - public string ClaveUnidad { get; set; } - public string Unidad { get; set; } - public decimal ValorUnitario { get; set; } - public decimal Importe { get; set; } - public decimal Descuento { get; set; } - public string NumeroPedimento { get; set; } - public string CuentaPredial { get; set; } - public string Descripcion { get; set; } - - - public string Impuesto { get; set; } - - public string Impuesto_Tipo { get; set; } - public decimal Impuesto_Base { get; set; } - public string Impuesto_TipoFactor { get; set; } - public string Impuesto_TasaOCuota { get; set; } - public decimal Impuesto_Importe { get; set; } - } - - public class CFDIConceptoImpuesto - { - public string Impuesto { get; set; } - public string ImpuestoTexto - { - get - { - string retorno = ""; - - switch (Impuesto) - { - case "001": retorno = "ISR"; break; - case "002": retorno = "IVA"; break; - case "003": retorno = "IEPS"; break; - } - return retorno; - } - } - public string Tipo { get; set; } - public decimal Base { get; set; } - public string TipoFactor { get; set; } - public string TasaOCuota { get; set; } - public decimal Importe { get; set; } - - } - - public class CFDIEmisor - { - public string RegimenFiscal { get; set; } - - public string RegimenFiscalTexto - { - get - { - string retorno = ""; - - switch (RegimenFiscal) - { - case "601": retorno = "General de Ley Personas Morales"; break; - case "603": retorno = "Personas Morales con Fines no Lucrativos"; break; - case "605": retorno = "Sueldos y Salarios e Ingresos Asimilados a Salarios"; break; - case "606": retorno = "Arrendamiento"; break; - case "608": retorno = "Demás ingresos"; break; - case "609": retorno = "Consolidación"; break; - case "610": retorno = "Residentes en el Extranjero sin Establecimiento Permanente en México"; break; - case "611": retorno = "Ingresos por Dividendos (socios y accionistas)"; break; - case "612": retorno = "Personas Físicas con Actividades Empresariales y Profesionales"; break; - case "614": retorno = "Ingresos por intereses"; break; - case "616": retorno = "Sin obligaciones fiscales"; break; - case "620": retorno = "Sociedades Cooperativas de Producción que optan por diferir sus ingresos"; break; - case "621": retorno = "Incorporación Fiscal"; break; - case "622": retorno = "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras"; break; - case "623": retorno = "Opcional para Grupos de Sociedades"; break; - case "624": retorno = "Coordinados"; break; - case "628": retorno = "Hidrocarburos"; break; - case "607": retorno = "Régimen de Enajenación o Adquisición de Bienes"; break; - case "629": retorno = "De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales"; break; - case "630": retorno = "Enajenación de acciones en bolsa de valores"; break; - case "615": retorno = "Régimen de los ingresos por obtención de premios"; break; - - } - return retorno; - } - } - public string Nombre { get; set; } - public string Rfc { get; set; } - - } - - public class CFDIImpuesto - { - public string Tipo { get; set; } - public string Impuesto { get; set; } - public string ImpuestoTexto - { - get - { - string retorno = ""; - - switch (Impuesto) - { - case "001": retorno = "ISR"; break; - case "002": retorno = "IVA"; break; - case "003": retorno = "IEPS"; break; - } - return retorno; - } - } - public string TipoFactor { get; set; } - public string TasaOCuota { get; set; } - public decimal Importe { get; set; } - } - - public class CFDIPago - { - public CFDIPago() - { - doctosRelacionados = new List(); - } - public string FechaPago { get; set; } - public string FormaDePagoP { get; set; } - public string FormaDePagoPText { get; set; } - public string MonedaP { get; set; } - public decimal Monto { get; set; } - public decimal TipoCambioP { get; set; } - public string NumOperacion { get; set; } - public string NomBancoOrdExt { get; set; } - public string RfcEmisorCtaOrd { get; set; } - public string CtaOrdenante { get; set; } - public string RfcEmisorCtaBen { get; set; } - public string CtaBeneficiario { get; set; } - public List doctosRelacionados { get; set; } - } - - public class CFDIPagoDoctoRelacionado - { - public string IdDocumento { get; set; } - public string Serie { get; set; } - public string Folio { get; set; } - public string MonedaDR { get; set; } - public string MetodoDePagoDR { get; set; } - public string NumParcialidad { get; set; } - public decimal ImpSaldoAnt { get; set; } - public decimal ImpPagado { get; set; } - public decimal ImpSaldoInsoluto { get; set; } - } - - public class CFDIReceptor - { - public string Rfc { get; set; } - public string Nombre { get; set; } - public string ResidenciaFiscal { get; set; } - public string NumRegIdTrib { get; set; } - public string UsoCFDI { get; set; } - public string UsoCFDITexto - { - get - { - string retorno = "N/A"; - - switch (UsoCFDI) - { - case "G01": - retorno = "Adquisición de mercancías"; - break; - case "G02": - retorno = "Devoluciones, descuentos o bonificaciones"; - break; - case "G03": - retorno = "Gastos en general"; - break; - case "I01": - retorno = "Construcciones"; - break; - case "I02": - retorno = "Mobiliario y equipo de oficina por inversiones"; - break; - case "I03": - retorno = "Equipo de transporte"; - break; - case "I04": - retorno = "Equipo de cómputo y accesorios"; - break; - case "I05": - retorno = "Dados, troqueles, moldes, matrices y herramental"; - break; - case "I06": - retorno = "Comunicaciones telefónicas"; - break; - case "I07": - retorno = "Comunicaciones satelitales"; - break; - case "I08": - retorno = "Otra maquinaria y equipo"; - break; - case "D01": - retorno = "Honorarios médicos, dentales y gastos hospitalarios."; - break; - case "D02": - retorno = "Gastos médicos por incapacidad o discapacidad"; - break; - case "D03": - retorno = "Gastos funerales."; - break; - case "D04": - retorno = "Donativos."; - break; - case "D05": - retorno = "Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación)."; - break; - case "D06": - retorno = "Aportaciones voluntarias al SAR."; - break; - case "D07": - retorno = "Primas por seguros de gastos médicos."; - break; - case "D08": - retorno = "Gastos de transportación escolar obligatoria."; - break; - case "D09": - retorno = "Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones."; - break; - case "D10": - retorno = "Pagos por servicios educativos (colegiaturas)"; - break; - case "P01": - retorno = "Por definir"; - break; - - default: - break; - } - return retorno; - } - } - - } - - public class CFDIRelacionado - { - public string TipoRelacion { get; set; } - public string TipoRelacionTexto - { - - get - { - string retorno; - - switch (TipoRelacion) - { - case "01": retorno = "Nota de crédito de los documentos relacionados"; break; - case "02": retorno = "Nota de débito de los documentos relacionados"; break; - case "03": retorno = "Devolución de mercancía sobre facturas o traslados previos"; break; - case "04": retorno = "Sustitución de los CFDI previos"; break; - case "05": retorno = "Traslados de mercancias facturados previamente"; break; - case "06": retorno = "Factura generada por los traslados previos"; break; - case "07": retorno = "CFDI por aplicación de anticipo"; break; - default: - retorno = "Por definir"; - break; - } - return retorno; - } - } - public string UUID { get; set; } - - } -} \ No newline at end of file diff --git a/vwd.webinfo b/vwd.webinfo index c139fadbc..fdbdd590d 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -566,6 +566,12 @@ + + + + + +