@@ -338,12 +382,14 @@
-
+
+
+
-
+
-
+
@@ -465,12 +511,39 @@
+
+
+
+
+
+
+
+
+
+ Solo cancelar timbre
+ Cancelar timbre y generar un nuevo registro
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
diff --git a/Inventarios/RepEntregaAlmacenRuta.aspx.cs b/Inventarios/RepEntregaAlmacenRuta.aspx.cs
index c2154ee19..0f694a1f8 100644
--- a/Inventarios/RepEntregaAlmacenRuta.aspx.cs
+++ b/Inventarios/RepEntregaAlmacenRuta.aspx.cs
@@ -1,4 +1,5 @@
using Extensiones;
+using Newtonsoft.Json;
using System;
using System.Data;
using System.IO;
@@ -255,7 +256,22 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
}
}
+ private string DatosTimbre
+ {
+ get
+ {
+ if (ViewState["DatosTimbre"] == null)
+ {
+ ViewState["DatosTimbre"] = "";
+ }
+ return ViewState["DatosTimbre"].ToString();
+ }
+ set
+ {
+ ViewState["DatosTimbre"] = value;
+ }
+ }
@@ -331,7 +347,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
DdlEstatus.SelectedValueExist("1");
- }
+ }
protected void InicializaFechas()
{
@@ -345,7 +361,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
{
ClsGenerales ObjGeneral = new ClsGenerales();
- if (ObjGeneral.GetInvEntregaAlmacenRutaRep(DdlSucursales.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, DdlEstatus.SelectedValue.ToEntero(), TxtFechaI.Text.ToDate(), TxtFechaF.Text.ToDate(), DdlChofer.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, Tipo:DdlTipo.SelectedValue))
+ if (ObjGeneral.GetInvEntregaAlmacenRutaRep(DdlSucursales.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, DdlEstatus.SelectedValue.ToEntero(), TxtFechaI.Text.ToDate(), TxtFechaF.Text.ToDate(), DdlChofer.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, Tipo: DdlTipo.SelectedValue))
{
DTDatos = ObjGeneral.DtResultados;
GVDatos.DataSource = DTDatos;
@@ -371,7 +387,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
- CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
+ CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
DdlModalCamion.SelectedValueExist(GvRow.DataKey("CveCamion"));
DdlModalChofer.SelectedValueExist(GvRow.DataKey("CveChofer"));
@@ -411,12 +427,54 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
DVDireccionDestino.Visible = true;
LnkDireccionDestino.Text = GvRow.DataKey("Direccion") + "
";
}
-
+
+ string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto");
+
+ if (TimbreTipoDocto == "Rec")
+ {
+ DivTxtRec.Visible = true;
+ DivGvRec.Visible = true;
+
+ CargaDatosRecoleccionDetallePS();
+ }
+ else
+ {
+ DivTxtRec.Visible = false;
+ DivGvRec.Visible = false;
+ }
+
UpModalEditarentrega.Update();
RegistraScript("$('#DivEditarEntrega').modal({ backdrop: 'static', keyboard: false });");
-
}
-
+
+ private void CargaDatosRecoleccionDetallePS()
+ {
+ if (CveEntregaAlmacen > 0)
+ {
+ ClsGenerales ObjGenerales = new ClsGenerales();
+
+ if (ObjGenerales.GetEntregaAlmacenRutaDetalle(CveEntregaAlmacen))
+ {
+ GvModalPSRecoleccion.DataSource = ObjGenerales.DtResultados;
+ }
+ else
+ {
+ GvModalPSRecoleccion.DataSource = null;
+ }
+ ObjGenerales.Dispose();
+ }
+ GvModalPSRecoleccion.DataBind();
+ }
+
+ protected void DdlProducto_ValueChanged(object sender, EventArgs e)
+ {
+ DdlModalRecoleccionUnidad.Items.Clear();
+ DdlModalRecoleccionUnidad.DataSource = get_GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero(), -1, UsuarioActual.CveEmpresa);
+ DdlModalRecoleccionUnidad.DataBind();
+
+ UpModalEditarentrega.Update();
+ }
+
private void ModalActualizaDirecciones(int CveTimbre)
{
ClsGenerales ObjGeneral = new ClsGenerales();
@@ -508,70 +566,198 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
protected void LnkCancelaTimbre_Click(object sender, EventArgs e)
{
+ this.DatosTimbre = "";
- bool ProcesoOK = false;
LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
- string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal").ToString();
- string RFCReceptor = GvRow.DataKey("RFCReceptor").ToString();
+ string FolioFiscalCancelar = GvRow.DataKey("FolioFiscal");
+ string RFCReceptor = GvRow.DataKey("RFCReceptor");
string RFCEmisor = GvRow.DataKey("RFCEmisor").ToString();
int CvePACCancelacion = GvRow.DataKey("CvePAC").ToEntero();
int CveSubProyecto = GvRow.DataKey("CveSubProyecto").ToEntero();
int CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
- string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto").ToString();
+ string TimbreTipoDocto = GvRow.DataKey("TimbreTipoDocto");
+ string FolioReferencia = GvRow.DataKey("FolioReferencia");
+ string SerieFolio = GvRow.DataKey("SerieFolio");
+ var objJson = new
+ {
+ CveTimbre,
+ FolioFiscalCancelar,
+ RFCReceptor,
+ RFCEmisor,
+ CvePACCancelacion,
+ CveSubProyecto,
+ CveEntregaAlmacen,
+ TimbreTipoDocto,
+ FolioReferencia,
+ SerieFolio
+ };
+
+ if (TimbreTipoDocto == "Tra")
+ {
+ RBLOpcionCancelacion.Enabled = false;
+ RBLOpcionCancelacion.SelectedValue = "2";
+ }
+
+
+ if (TimbreTipoDocto == "Ent")
+ {
+ RBLOpcionCancelacion.Enabled = false;
+ RBLOpcionCancelacion.SelectedValue = "1";
+ }
+
+
+ if (TimbreTipoDocto == "Rec")
+ {
+ RBLOpcionCancelacion.Enabled = true;
+ RBLOpcionCancelacion.SelectedValue = "1";
+ }
+
+ this.DatosTimbre = JsonConvert.SerializeObject(objJson);
+
+ UpModalCancelar.Update();
+
+ RegistraScript("$('#DivModalCancelar').modal('show');");
+ }
+
+ private void CancelarTimbre()
+ {
+ bool ProcesoOK = false;
+
+ var objJson = new
+ {
+ CveTimbre = -1,
+ FolioFiscalCancelar = "",
+ RFCReceptor = "",
+ RFCEmisor = "",
+ CvePACCancelacion = -1,
+ CveSubProyecto = -1,
+ CveEntregaAlmacen = -1,
+ TimbreTipoDocto = "",
+ FolioReferencia = "",
+ SerieFolio = ""
+ };
+
+ int CveTimbre = -1;
+ string FolioFiscalCancelar = "";
+ string RFCReceptor = "";
+ string RFCEmisor = "";
+ int CvePACCancelacion = -1;
+ int CveSubProyecto = -1;
+ int CveEntregaAlmacen = -1;
+ string TimbreTipoDocto = "";
+ string FolioReferencia = "";
+ string SerieFolio = "";
+
+ bool RegenerarTimbre = RBLOpcionCancelacion.SelectedValue == "2";
+
+ if (!string.IsNullOrEmpty(this.DatosTimbre))
+ {
+ var obj = JsonConvert.DeserializeAnonymousType(this.DatosTimbre, objJson);
+
+ CveTimbre = obj.CveTimbre;
+ FolioFiscalCancelar = obj.FolioFiscalCancelar;
+ RFCReceptor = obj.RFCReceptor;
+ RFCEmisor = obj.RFCEmisor;
+ CvePACCancelacion = obj.CvePACCancelacion;
+ CveSubProyecto = obj.CveSubProyecto;
+ CveEntregaAlmacen = obj.CveEntregaAlmacen;
+ TimbreTipoDocto = obj.TimbreTipoDocto;
+ FolioReferencia = obj.FolioReferencia;
+ SerieFolio = obj.SerieFolio;
+ }
Timbrado ObjCancelacion = new Timbrado();
ClsGenerales ObjGenerales = new ClsGenerales();
ObjGenerales.IniciaTransacSQL();
- if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
- {
- if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
- {
- ProcesoOK = true;
- }
- }
- else
- {
- ModExtensiones.RespuestaCancelacionSAT Resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptor, RFCEmisor, CvePACCancelacion, CveSATMotivoCancelacion: 3);
+ StringBuilder sbMsg = new StringBuilder();
- if (Resp.Verificado)
+ try
+ {
+ if (EsProduccion)
{
-
- if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, ObjCancelacion.CancelacionAcuse, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
+ if (EstatusSATCancelado(FolioFiscalCancelar, UsuarioActual.Empresa.RFC, RFCReceptor))
{
- //regenero el timbre
- if (TimbreTipoDocto == "Tra")
+ AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, "", CveSubProyecto, TimbreTipoDocto, FolioReferencia);
+ }
+ else
+ {
+ ModExtensiones.RespuestaCancelacionSAT Resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptor, RFCEmisor, CvePACCancelacion, CveSATMotivoCancelacion: 3);
+ if (Resp.Verificado)
{
- CveTimbre = ObjGenerales.AddGralTimbre("Tra", CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
+ AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, ObjCancelacion.CancelacionAcuse, CveSubProyecto, TimbreTipoDocto, FolioReferencia);
}
- ////regenero el timbre
- //if (TimbreTipoDocto == "Ent")
- //{
- // CveTimbre = ObjGenerales.AddGralTimbre("Ent", CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
- //}
- ProcesoOK = true;
}
}
+ else
+ {
+ AplicarCancelacion(ref ProcesoOK, ref sbMsg, ref ObjGenerales, ref CveTimbre, SerieFolio, CveEntregaAlmacen, RegenerarTimbre, CvePACCancelacion, "", CveSubProyecto, TimbreTipoDocto, FolioReferencia);
+ }
+ }
+ catch (Exception ex)
+ {
+ ProcesoOK = false;
+ sbMsg.Clear();
+ sbMsg.Append("Ocurrió un error al cancelar");
}
if (ProcesoOK)
{
ObjGenerales.Commit();
- Alert("El complemento se cancelo correctamente.");
+ Alert(sbMsg.ToString());
}
else
{
ObjGenerales.RollBack();
- Alert("Se presento un error al cancelar el Folio Fiscal", ModExtensiones.TipoMensaje.MsgAdvertencia);
+ Alert(sbMsg.ToString(), ModExtensiones.TipoMensaje.MsgError);
}
ObjGenerales.Dispose();
+
+ RegistraScript("$('#DivModalCancelar').modal('hide');");
+
+ if (RegenerarTimbre)
+ {
+ DdlEstatus.SelectedValueExist("0");
+ UPFiltros.Update();
+ CargaDatos();
+ }
}
+ private void AplicarCancelacion(ref bool ProcesoOK, ref StringBuilder sbMsg, ref ClsGenerales ObjGenerales, ref int CveTimbre, string SerieFolioCancelar, int CveEntregaAlmacen, bool RegenerarTimbre, int CvePACCancelacion, string Acuse, int CveSubProyecto, string TimbreTipoDocto, string FolioReferencia)
+ {
+ if (ObjGenerales.CancelarTimbreTimbrado(CveTimbre, NowADS(), CvePACCancelacion, Acuse, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
+ {
+ ProcesoOK = true;
+ sbMsg.Append($"El timbre
{SerieFolioCancelar} se cancelo correctamente.");
+ //regenero el timbre
+ if (RegenerarTimbre)
+ {
+ CveTimbre = ObjGenerales.AddGralTimbre(TimbreTipoDocto, CveSubProyecto, NowADS(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen: CveEntregaAlmacen, AplicaCP: true);
+ if (CveTimbre > 0)
+ {
+ sbMsg.Append($"
Se genero un nuevo registro.
Serie Folio:
{ObjGenerales.SerieInsertada} - {ObjGenerales.FolioInsertado}");
+ if (TimbreTipoDocto == "Rec")
+ {
+ sbMsg.Append($"
Folio de referencia:
{FolioReferencia}");
+ }
+ }
+ else
+ {
+ ProcesoOK = false;
+ }
+ }
+ }
+ else
+ {
+ ProcesoOK = false;
+ }
+ }
+
public bool EstatusSATCancelado(string FolioFiscal, string RFCDe, string RFCReceptor)
{
bool respuesta = false;
@@ -598,7 +784,6 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
protected void BtnModalEditarentrega_Click(object sender, EventArgs e)
{
-
bool ProcesoOK = true;
ClsGenerales ObjGral = new ClsGenerales();
@@ -634,6 +819,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
LinkButton LnkEditar = e.Row.FCLinkButton("LnkEditar");
LinkButton LnkTimbrar = e.Row.FCLinkButton("LnkTimbrar");
LinkButton LnkCancelaTimbre = e.Row.FCLinkButton("LnkCancelaTimbre");
+ //LinkButton LnkReactivarTimbre = e.Row.FCLinkButton("LnkReactivarTimbre");
LnkEditar.Visible = false;
LnkTimbrar.Visible = false;
@@ -652,6 +838,11 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
e.Row.FCHyperLink("HplR").NavigateUrl = "/Inventarios/EntradasSalidas.aspx?CveEntregaAlmacen=" + e.Row.DBCampo("CveEntregaAlmacen");
}
+ //if (e.Row.DataKey("Estatus").ToEntero() == 2)
+ //{
+ // LnkReactivarTimbre.Visible = true;
+ //}
+
if (e.Row.DataKey("Estatus").ToEntero() == 1)
{
LnkCancelaTimbre.Visible = UsuarioActual.TienePermisoProceso(338);
@@ -661,10 +852,10 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
}
- if (bool.Parse(e.Row.DataKey("AplicaCP")))
+ if (bool.Parse(e.Row.DataKey("AplicaCP")))
{
-
- if(e.Row.DataKey("Tipo").ToString() == "I")
+
+ if (e.Row.DataKey("Tipo").ToString() == "I")
{
if (e.Row.FCHyperLink("HplPDF") != null)
e.Row.FCHyperLink("HplPDF").NavigateUrl = "/Compras/PopUpVerFactura.aspx?P=" + Extensiones.ModExtensiones.Encripta(String.Format("OP=DesXmlTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", -1, "PDF", e.Row.DataKey("SerieFolio"), e.Row.DataKey("TimbreTipoDocto")));
@@ -687,7 +878,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
{
if (e.Row.DataKey("Tipo").ToString() == "I")
{
- if (e.Row.FCHyperLink("HplXML") != null)
+ if (e.Row.FCHyperLink("HplXML") != null)
e.Row.FCHyperLink("HplXML").NavigateUrl = "/Compras/PopUpVerFactura.aspx?P=" + Extensiones.ModExtensiones.Encripta(String.Format("OP=DesXmlTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", -1, "XML", e.Row.DataKey("SerieFolio"), e.Row.DataKey("TimbreTipoDocto")));
}
else
@@ -984,7 +1175,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
DdlDirClienteLocalidad.Items.Clear();
if (DdlDirClienteEstado.SelectedValue.ToEntero() > 0)
{
- DdlDirClienteLocalidad.DataSource = get_GlobalDTLocalidad(DdlDirClienteEstado.SelectedValue.ToEntero(), DdlDirClienteMunicipio.SelectedValue.ToEntero(), CodigoPostal:TxtEnvioCP.Text.Trim());
+ DdlDirClienteLocalidad.DataSource = get_GlobalDTLocalidad(DdlDirClienteEstado.SelectedValue.ToEntero(), DdlDirClienteMunicipio.SelectedValue.ToEntero(), CodigoPostal: TxtEnvioCP.Text.Trim());
DdlDirClienteLocalidad.DataBind();
}
@@ -1039,7 +1230,7 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
public void EditDireccionOrigen_Click(object sender, EventArgs e)
{
- //GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
+ //GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
//int CveDireccionOrigen = GvRow.DataKey("CveDireccionOrigen").ToEntero();
CveDireccionEditar = CveDireccionOrigen;
//CveCliente = GvRow.DataKey("CveCliente").ToEntero();
@@ -1139,6 +1330,92 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas
RegistraScript("$('#divAddDireccionEnvio').modal('show');");
}
+
+ protected void LnkReactivarTimbre_Click(object sender, EventArgs e)
+ {
+ bool ProcesoOK = false;
+ LinkButton LnkCancelarFolioFiscal = (LinkButton)sender;
+ GridViewRow GvRow = (GridViewRow)LnkCancelarFolioFiscal.BindingContainer;
+
+ int CveTimbre = GvRow.DataKey("CveTimbre").ToEntero();
+ int CveEntregaAlmacen = GvRow.DataKey("CveEntregaAlmacen").ToEntero();
+
+
+ Timbrado ObjCancelacion = new Timbrado();
+ ClsGenerales ObjGenerales = new ClsGenerales();
+ ObjGenerales.IniciaTransacSQL();
+
+ if (ObjGenerales.ReactivarTimbreEntregaAlmacen(CveTimbre, CveEntregaAlmacen, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
+ {
+ ProcesoOK = true;
+ }
+
+ if (ProcesoOK)
+ {
+ ObjGenerales.Commit();
+ Alert("El complemento se reactivo correctamente.");
+ }
+ else
+ {
+ ObjGenerales.RollBack();
+ Alert("Se presento un error al reactivar el folio fiscal", ModExtensiones.TipoMensaje.MsgAdvertencia);
+ }
+ ObjGenerales.Dispose();
+
+ CargaDatos();
+ }
+
+ protected void LnkModalAgregarPS_Click(object sender, EventArgs e)
+ {
+ if (CveEntregaAlmacen > 0)
+ {
+ ClsGenerales ObjGenerales = new ClsGenerales();
+
+ if (ObjGenerales.AddEntregaAlmacenRutaDetalle(CveEntregaAlmacen, DdlProducto2.SelectedValue.ToEntero(), TxtModalRecoleccionCantidad.Text.ToEntero(), DdlModalRecoleccionUnidad.SelectedValue.ToEntero(), UsuarioActual.CveUsuario))
+ {
+
+ }
+ ObjGenerales.Dispose();
+ }
+
+ LimpiarControlesPS();
+ CargaDatosRecoleccionDetallePS();
+
+ }
+ private void LimpiarControlesPS()
+ {
+ TxtModalRecoleccionCantidad.Text = "";
+ DdlModalRecoleccionUnidad.Items.Clear();
+ DdlProducto2.txtText.Value = "";
+ DdlProducto2.txtValue.Value = "";
+ UpModalEditarentrega.Update();
+ }
+
+
+ protected void LnkModalGvModalPSRecoleccionEliminar_Click(object sender, EventArgs e)
+ {
+ LinkButton LnkEliminar = (LinkButton)sender;
+ GridViewRow GvRow = (GridViewRow)LnkEliminar.NamingContainer;
+
+ if (CveEntregaAlmacen > 0)
+ {
+
+ int CveEntregaAlmacenDetalleEliminar = GvRow.DataKey("CveEntregaAlmacenDetalle").ToEntero();
+ ClsGenerales ObjGenerales = new ClsGenerales();
+
+ if (ObjGenerales.RemoveEntregaAlmacenRutaDetalle(CveEntregaAlmacenDetalleEliminar))
+ {
+ Alert("Recolección Eliminada correctamente.");
+ }
+ ObjGenerales.Dispose();
+ }
+ CargaDatosRecoleccionDetallePS();
+ }
+
+ protected void LnkCancelar_Click(object sender, EventArgs e)
+ {
+ CancelarTimbre();
+ }
}