From 7b5b6ec00399b2d2641afba77c47bd82202810ae Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 20 Nov 2020 12:01:20 -0700 Subject: [PATCH 1/4] Tareas 119 logea todo paso a paso --- Contratos/RepContratosObraAvances.aspx | 4 +- Contratos/RepContratosObraAvances.aspx.vb | 4 +- .../RepContratosObraAvancesDetalle.aspx.vb | 8 +- TareasProgramadas/Tareas119.ashx | 149 ++++++++++++------ 4 files changed, 116 insertions(+), 49 deletions(-) diff --git a/Contratos/RepContratosObraAvances.aspx b/Contratos/RepContratosObraAvances.aspx index 7f31c16ea..9762001bb 100644 --- a/Contratos/RepContratosObraAvances.aspx +++ b/Contratos/RepContratosObraAvances.aspx @@ -168,7 +168,7 @@
- + <%--76% Avance--%>
@@ -220,7 +220,7 @@
- + <%--76% Avance--%>
diff --git a/Contratos/RepContratosObraAvances.aspx.vb b/Contratos/RepContratosObraAvances.aspx.vb index 066bab9dc..987e7206c 100644 --- a/Contratos/RepContratosObraAvances.aspx.vb +++ b/Contratos/RepContratosObraAvances.aspx.vb @@ -52,8 +52,8 @@ Partial Class RepContratosObraAvances Dim TotalFaltante As Decimal = TotalContratos - TotalAvance - Dim TotalAvancePorcentaje As Decimal = (TotalAvance * 100) / TotalContratos - Dim TotalFaltantePorcentaje As Decimal = 100 - TotalAvancePorcentaje + Dim TotalAvancePorcentaje As Decimal = ((TotalAvance * 100) / TotalContratos).RoundAD(2) + Dim TotalFaltantePorcentaje As Decimal = (100 - TotalAvancePorcentaje).RoundAD(2) LtlGrafNumeroContratos.Text = NumeroContratos.ToString diff --git a/Contratos/RepContratosObraAvancesDetalle.aspx.vb b/Contratos/RepContratosObraAvancesDetalle.aspx.vb index 0c5d28a6a..a2d70d35f 100644 --- a/Contratos/RepContratosObraAvancesDetalle.aspx.vb +++ b/Contratos/RepContratosObraAvancesDetalle.aspx.vb @@ -88,7 +88,13 @@ Partial Class RepContratosObraAvancesDetalle Dim AvanceImporte As Decimal = DTDatos(0)("AvanceImporte").ToString.ToDecimal Dim TotalContratos As Decimal = DTDatos(0)("Importe").ToString.ToDecimal - Dim TotalAvancePorcentaje As Decimal = (AvanceImporte * 100) / TotalContratos + + Dim TotalAvancePorcentaje As Decimal = 0 + If TotalContratos > 0 Then + TotalAvancePorcentaje = (AvanceImporte * 100) / TotalContratos + End If + + Dim TotalFaltantePorcentaje As Decimal = 100 - TotalAvancePorcentaje Dim FechaFinal As Date = DTDatos(0)("FechaFinal").ToString.ToDate diff --git a/TareasProgramadas/Tareas119.ashx b/TareasProgramadas/Tareas119.ashx index dfbee9c74..4fbb5489d 100644 --- a/TareasProgramadas/Tareas119.ashx +++ b/TareasProgramadas/Tareas119.ashx @@ -1,7 +1,7 @@ -<%@ WebHandler Language="C#" Class="TareasJam" %> - -using System; -using System.Web; +<%@ WebHandler Language="C#" Class="TareasJam" %> + +using System; +using System.Web; using Extensiones; using System.Net; using System.IO; @@ -9,46 +9,49 @@ using System.Web.Services; using System.Web.Services.Protocols; using GemBox.Spreadsheet; using System.Data; -using System.Text; +using System.Text; using System.Collections.Generic; -using ClosedXML; - -public class TareasJam : IHttpHandler -{ - - public void ProcessRequest(HttpContext context) - { - context.Response.ContentType = "text/plain"; - //context.Response.Write("Hello World"); - bool retorno = false; - string Metodo = context.Request["Metodo"] ==null?"": context.Request["Metodo"]; - int CveEmpresa =context.Request["CveEmpresa"] ==null?0: context.Request["CveEmpresa"].ToEntero(); - switch (Metodo) +using ClosedXML; + +public class TareasJam : IHttpHandler +{ + + public void ProcessRequest(HttpContext context) + { + context.Response.ContentType = "text/plain"; + //context.Response.Write("Hello World"); + bool retorno = false; + string Metodo = context.Request["Metodo"] ==null?"": context.Request["Metodo"]; + int CveEmpresa =context.Request["CveEmpresa"] ==null?0: context.Request["CveEmpresa"].ToEntero(); + switch (Metodo) { case "TestConexion": retorno = PruebaConexionFTP("ftp://us2.hostedftp.com/", "agrojam", "A12345678"); break; - case "EjecutaThalamus": - retorno =EjecutaThalamus(CveEmpresa); - break; - default: - break; - } - if (retorno) - { - context.Response.Write("True"); - - }else - { - context.Response.Write("False"); - - } + case "EjecutaThalamus": + retorno =EjecutaThalamus(CveEmpresa); + break; + default: + break; + } + if (retorno) + { + context.Response.Write("True"); + + }else + { + context.Response.Write("False"); + + } context.Response.End(); } private bool EjecutaThalamus(int CveEmpresa) { + + this.GuardaLog("EjecutaThalamus: Inicio. "); + bool Respuesta = false; StringBuilder SBLog = new StringBuilder(); @@ -96,6 +99,7 @@ public class TareasJam : IHttpHandler } catch (Exception ex) { SBLog.AppendLine("Error al eliminar archivos"); + this.GuardaLog("EjecutaThalamus: Error Eliminado arrchivo " + ex.Message + " "); } @@ -113,46 +117,60 @@ public class TareasJam : IHttpHandler SBLog.AppendLine("Consultas
"); SBLog.AppendLine(""); + + + this.GuardaLog("EjecutaThalamus: Consultando Prodcutos. "); if (ObjGenerales.GetJAMCorveta(1)) { DTProductos = ObjGenerales.DtResultados.Copy(); SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Prodcutos correcto {DTProductos.Rows.Count} registros. "); } else { ErrorProceso = true; SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Prodcutos Error. "); } + this.GuardaLog($"EjecutaThalamus: Consultando Ventas. "); if (ObjGenerales.GetJAMCorveta(2) & ErrorProceso == false) { DTVentas = ObjGenerales.DtResultados.Copy(); SBLog.AppendLine($"Ventas"); + this.GuardaLog($"EjecutaThalamus: Consultando Ventas correcto {DTVentas.Rows.Count} registros. "); } else { ErrorProceso = true; SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Ventas Error. "); } - if (ObjGenerales.GetJAMCorveta(3) & ErrorProceso == false) + this.GuardaLog($"EjecutaThalamus: Consultando Clientes. "); + if (ObjGenerales.GetJAMCorveta(3) & ErrorProceso == false) { DTClientes = ObjGenerales.DtResultados.Copy(); SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Clientes correco {DTClientes.Rows.Count} registros. "); } else { ErrorProceso = true; SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Clientes Error. "); } + this.GuardaLog($"EjecutaThalamus: Consultando Almacenes. "); if (ObjGenerales.GetJAMCorveta(4) & ErrorProceso == false) { DTAlmacenes = ObjGenerales.DtResultados.Copy(); SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Almacenes Correcto {DTAlmacenes.Rows.Count} registros. "); } else { ErrorProceso = true; SBLog.AppendLine($""); + this.GuardaLog($"EjecutaThalamus: Consultando Almacenes Error. "); } SBLog.AppendLine("
ConsultaRegistros
Productos{DTProductos.Rows.Count}
ProductosError al consultar
{DTVentas.Rows.Count}
VentasError al consultar
Clientes{DTClientes.Rows.Count}
ClientesError al consultar
Almacenes{DTAlmacenes.Rows.Count}
AlmacenesError al consultar
"); @@ -166,12 +184,14 @@ public class TareasJam : IHttpHandler try { + this.GuardaLog($"EjecutaThalamus: Renombrando columnas tabla productos. "); DTProductos.Columns[0].ColumnName = "Código Producto Interno"; DTProductos.Columns[1].ColumnName = "Nombre del Producto"; DTProductos.Columns[2].ColumnName = "Presentación"; DTProductos.AcceptChanges(); + this.GuardaLog($"EjecutaThalamus: Renombrando columnas tabla clientes. "); DTClientes.Columns[4].ColumnName = "address.countryId"; DTClientes.Columns[5].ColumnName = "address.stateId"; DTClientes.Columns[6].ColumnName = "address.city"; @@ -189,6 +209,8 @@ public class TareasJam : IHttpHandler //DTClientes.Columns.RemoveAt(7); DTClientes.AcceptChanges(); + + this.GuardaLog($"EjecutaThalamus: Renombrando columnas tabla ventas. "); DTVentas.Columns.RemoveAt(7); //DTVentas.Columns.RemoveAt(6); @@ -197,13 +219,14 @@ public class TareasJam : IHttpHandler DTVentas.AcceptChanges(); - + this.GuardaLog($"EjecutaThalamus: Renombrando columnas tabla almacenes. "); DTAlmacenes.Columns[2].ColumnName = "Description"; DTAlmacenes.Columns[3].ColumnName = "Stock Date"; DTAlmacenes.AcceptChanges(); + this.GuardaLog($"EjecutaThalamus: procesando tabla de ventas DTVentas.Clone() para asiganación de tipo de dato fecha. "); DataTable dtCloned = DTVentas.Clone(); dtCloned.Columns[3].DataType = typeof(DateTime); @@ -221,7 +244,7 @@ public class TareasJam : IHttpHandler DTVentas.AcceptChanges(); - + this.GuardaLog($"EjecutaThalamus: procesando tabla de ventas DTAlmacenes.Clone() para asiganación de tipo de dato fecha. "); dtCloned = DTAlmacenes.Clone(); dtCloned.Columns[3].DataType = typeof(DateTime); @@ -242,6 +265,7 @@ public class TareasJam : IHttpHandler catch (Exception e) { SBLog.AppendLine("Error al renombrar columnas"); + this.GuardaLog($"EjecutaThalamus: Error procesamiento de tablas " + e.StackTrace.ToString() + " "); } } @@ -250,6 +274,8 @@ public class TareasJam : IHttpHandler if (!ErrorProceso) { ////////////////////////////////////////////////////////////// + + this.GuardaLog($"EjecutaThalamus: llenando archivo excel ventas. "); int count = 2; var wbVentas = new ClosedXML.Excel.XLWorkbook(FormatoVentas); var wsVentas = wbVentas.Worksheet(1); @@ -259,12 +285,13 @@ public class TareasJam : IHttpHandler wsVentas.Cell(count, 1).Value = "'" + DRow["systemId"].ToString(); wsVentas.Cell(count, 2).Value = DRow["Branch"].ToString(); wsVentas.Cell(count, 3).Value = "'" + DRow["Code"].ToString(); - wsVentas.Cell(count, 4).Value = DRow["Sale Date"].ToString(); + wsVentas.Cell(count, 4).Value = DRow["Sale Date"].ToString(); wsVentas.Cell(count, 5).Value = DRow["Quantity"].ToString(); wsVentas.Cell(count, 6).Value = DRow["Amount"].ToString(); wsVentas.Cell(count, 7).Value = DRow["Transaction ID"].ToString(); count++; } + this.GuardaLog($"EjecutaThalamus: guardando archivo excel ventas " + RutaVentas + " "); wbVentas.SaveAs(RutaVentas); var wbAlmacenes = new ClosedXML.Excel.XLWorkbook(FormatoAlmacenes); @@ -272,14 +299,16 @@ public class TareasJam : IHttpHandler count = 2; + this.GuardaLog($"EjecutaThalamus: llenando archivo excel almacenes. "); foreach (DataRow DRow in DTAlmacenes.Rows) { wsAlmacenes.Cell(count, 1).Value = "'" + DRow["Code"].ToString(); wsAlmacenes.Cell(count, 2).Value = DRow["Quantity"].ToString(); wsAlmacenes.Cell(count, 3).Value = DRow["Description"].ToString(); - wsAlmacenes.Cell(count, 4).Value = DRow["Stock Date"].ToString(); + wsAlmacenes.Cell(count, 4).Value = DRow["Stock Date"].ToString(); count++; } + this.GuardaLog($"EjecutaThalamus: guardando archivo excel alamcenes " + RutaAlmacenes + " "); wbAlmacenes.SaveAs(RutaAlmacenes); var wbAClientes = new ClosedXML.Excel.XLWorkbook(FormatoClientes); @@ -287,6 +316,7 @@ public class TareasJam : IHttpHandler count = 2; + this.GuardaLog($"EjecutaThalamus: llenando archivo excel clientes. "); foreach (DataRow DRow in DTClientes.Rows) { wsClientes.Cell(count, 1).Value = "'" + DRow["systemId"].ToString(); @@ -306,13 +336,15 @@ public class TareasJam : IHttpHandler count++; } + + this.GuardaLog($"EjecutaThalamus: guardando archivo excel clientes " + RutaClientes + " "); wbAClientes.SaveAs(RutaClientes); var wbProductos= new ClosedXML.Excel.XLWorkbook(FormatoProductos); var wsProductos = wbProductos.Worksheet(1); count = 2; - + this.GuardaLog($"EjecutaThalamus: llenando archivo excel productos. "); foreach (DataRow DRow in DTProductos.Rows) { wsProductos.Cell(count, 1).Value = "'" + DRow["Código Producto Interno"].ToString(); @@ -321,6 +353,7 @@ public class TareasJam : IHttpHandler count++; } + this.GuardaLog($"EjecutaThalamus: guardando archivo excel productos " + RutaProductos + " "); wbProductos.SaveAs(RutaProductos); ///////////////////////////////////////////////////////////// @@ -337,10 +370,13 @@ public class TareasJam : IHttpHandler SBLog.AppendLine("Cargas
"); SBLog.AppendLine(""); + + this.GuardaLog($"EjecutaThalamus: Cargando archivo excel productos a FTP. "); CargaProductos = CargarArchivos(FInfoProductos, FTPServer, TFPUsr, FTPPass); if (CargaProductos) { + this.GuardaLog($"EjecutaThalamus: Verificando archivo productos. "); CargaProductos = VerificarArchivo(FInfoProductos, FInfoProductos.Length, FTPServer, TFPUsr, FTPPass); } @@ -355,9 +391,11 @@ public class TareasJam : IHttpHandler if (CargaProductos) { + this.GuardaLog($"EjecutaThalamus: Cargando archivo excel ventas a FTP. "); CargaVentas = CargarArchivos(FInfoVentas, $"{FTPServer}/Ventas", TFPUsr, FTPPass); if (CargaVentas) { + this.GuardaLog($"EjecutaThalamus: Verificando archivo ventas. "); CargaVentas = VerificarArchivo(FInfoVentas, FInfoVentas.Length, $"{FTPServer}/Ventas", TFPUsr, FTPPass); } } @@ -373,9 +411,11 @@ public class TareasJam : IHttpHandler if (CargaProductos & CargaVentas) { + this.GuardaLog($"EjecutaThalamus: Cargando archivo excel clientes a FTP. "); CargaClientes = CargarArchivos(FInfoClientes, $"{FTPServer}/Clientes", TFPUsr, FTPPass); if (CargaClientes) { + this.GuardaLog($"EjecutaThalamus: Verificando archivo clientes. "); CargaClientes = VerificarArchivo(FInfoClientes, FInfoClientes.Length, $"{FTPServer}/Clientes", TFPUsr, FTPPass); } } @@ -391,9 +431,11 @@ public class TareasJam : IHttpHandler if (CargaProductos & CargaVentas & CargaClientes) { + this.GuardaLog($"EjecutaThalamus: Cargando archivo excel almacenes a FTP. "); CargaAlmacenes = CargarArchivos(FInfoAlmacenes, $"{FTPServer}/Stock", TFPUsr, FTPPass); if (CargaClientes) { + this.GuardaLog($"EjecutaThalamus: Verificando archivo almacenes. "); CargaAlmacenes = VerificarArchivo(FInfoAlmacenes, FInfoAlmacenes.Length, $"{FTPServer}/Stock", TFPUsr, FTPPass); } } @@ -429,8 +471,10 @@ public class TareasJam : IHttpHandler string Cuerpo = Respuesta ? $"Correcto
Tarea de carga de archios Corteva realizada correctamente
{SBLog.ToString()}" : $"Error
Error tarea de carga de archios Corteva
{SBLog.ToString()}" ; + this.GuardaLog($"EjecutaThalamus: Enviado correo. "); MandaCorreo(Cuerpo, Respuesta, RutaProductos, RutaVentas, RutaClientes, RutaAlmacenes); + this.GuardaLog($"EjecutaThalamus: Tarea terminada se regresa respuesta {Respuesta.ToString()}. "); return Respuesta; } @@ -461,15 +505,17 @@ public class TareasJam : IHttpHandler ClsSisMail Correo = new ClsSisMail(); - string Para = "julian@adssistemas.mx;rene.molina@adssistemas.mx;oscar.irigoyen@adssistemas.mx"; - //string Para = "oscar.irigoyen@adssistemas.mx"; + string Para = "julian@adssistemas.mx;rene.molina@adssistemas.mx;oscar.irigoyen@adssistemas.mx"; + // string Para = "oscar.irigoyen@adssistemas.mx"; string Asunto = ErrorProceso ? $"Carga Layout Corteva {DateTime.Now.ToString("yyyy-MM-dd")}" : $"Carga Layout Corteva Error {DateTime.Now.ToString("yyyy-MM-dd")}"; Correo.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Cuerpo, Archivos:ListaArchivos); + this.GuardaLog($"EjecutaThalamus: MandaCorreo() correo enviado. "); }catch(Exception ex) { Extensiones.ModExtensiones.GuardaLog(null,$"Error Tareas Programadas 119 error enviar mail --> {ex.Message} "); + this.GuardaLog($"EjecutaThalamus: MandaCorreo() Error {ex.StackTrace.ToString()}. "); } } @@ -480,6 +526,8 @@ public class TareasJam : IHttpHandler if (FInfo.Exists) { + this.GuardaLog($"EjecutaThalamus: CargarArchivos() Conectando a TFP. "); + FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"{FTPServer}/{FInfo.Name}"); request.Method = WebRequestMethods.Ftp.UploadFile; int tamanio = 1024; @@ -491,10 +539,12 @@ public class TareasJam : IHttpHandler { request.GetResponse(); Conected = true; + this.GuardaLog($"EjecutaThalamus: CargarArchivos() conexión a TFP correcta. "); } catch (Exception ex) { Extensiones.ModExtensiones.GuardaLog(null,$"Error Tareas Programadas 119 Conexión a servidor FTP archivo { FInfo.Name } {ex.Message} "); + this.GuardaLog($"EjecutaThalamus: CargarArchivos() FTP Error Tareas Programadas 119 Conexión a servidor FTP archivo { FInfo.Name } {ex.Message}. "); } if (Conected) @@ -517,16 +567,20 @@ public class TareasJam : IHttpHandler { Respuesta = false; Extensiones.ModExtensiones.GuardaLog(null,$"Error Tareas Programadas 119 cargando archivo { FInfo.Name } {ex.Message} "); + this.GuardaLog($"EjecutaThalamus: CargarArchivos() Conectando a TFP Error Tareas Programadas 119 cargando archivo { FInfo.Name } {ex.Message}. "); } + if (f is object) { f.Close(); } + this.GuardaLog($"EjecutaThalamus: CargarArchivos() TFP cerrrando conxión. "); if (ftpStream is object) { ftpStream.Close(); + this.GuardaLog($"EjecutaThalamus: CargarArchivos() TFP conxión cerrada. "); } } else @@ -553,6 +607,7 @@ public class TareasJam : IHttpHandler try { + this.GuardaLog($"EjecutaThalamus: VerificarArchivo() conectando a FTP ."); FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"{FTPServer}/{FInfo.Name}"); request.Credentials = new NetworkCredential(FTPUsr, FTPPass); request.Method = WebRequestMethods.Ftp.GetFileSize; @@ -562,14 +617,20 @@ public class TareasJam : IHttpHandler respSize = (FtpWebResponse)request.GetResponse(); long size = respSize.ContentLength; respSize.Close(); + + this.GuardaLog($"EjecutaThalamus: VerificarArchivo() tamaño local {Tamanio} ftp { size}. "); if (Tamanio == size) { Respuesta = true; + this.GuardaLog($"EjecutaThalamus: VerificarArchivo() tamaño ok. "); } }catch(Exception ex) { + Extensiones.ModExtensiones.GuardaLog(null,$"Error Tareas Programadas 119 verificando archivo { FInfo.Name } {ex.Message} "); + this.GuardaLog($"EjecutaThalamus: VerificarArchivo() Error {ex.StackTrace.ToString()}. " ); + Respuesta = false; } @@ -592,7 +653,7 @@ public class TareasJam : IHttpHandler } catch (Exception ex) { - Extensiones.ModExtensiones.GuardaLog(null, $"Error Tareas Programadas 119 error Prueba de Conexión a servidor FTP archivo {ex.Message} "); + Extensiones.ModExtensiones.GuardaLog(null, $"Error Tareas Programadas 119 error Prueba de Conexión a servidor FTP archivo {ex.Message}. "); } return Respuesta; @@ -603,6 +664,6 @@ public class TareasJam : IHttpHandler public bool IsReusable { get { return false; } - } - + } + } \ No newline at end of file From 4646464e10e54dd3a0ec2aa1f33aa9cc5315956a Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 20 Nov 2020 13:05:41 -0700 Subject: [PATCH 2/4] -- columnas en compras-subproyectos --- Inventarios/RepNotasSinAlmacen.aspx | 1 + Inventarios/RepNotasSinAlmacen.aspx.vb | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Inventarios/RepNotasSinAlmacen.aspx b/Inventarios/RepNotasSinAlmacen.aspx index 59c905aaf..b70241195 100644 --- a/Inventarios/RepNotasSinAlmacen.aspx +++ b/Inventarios/RepNotasSinAlmacen.aspx @@ -189,6 +189,7 @@ + diff --git a/Inventarios/RepNotasSinAlmacen.aspx.vb b/Inventarios/RepNotasSinAlmacen.aspx.vb index af54ebcf6..a259a52b6 100644 --- a/Inventarios/RepNotasSinAlmacen.aspx.vb +++ b/Inventarios/RepNotasSinAlmacen.aspx.vb @@ -72,9 +72,9 @@ Partial Class RepNotasSinAlmacen Private Sub CargaPermisos() Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201) Dim TienePermisoDesmarcar As Boolean = UsuarioActual.TienePermisoProceso(278) - GvVentas.Columns(4).Visible = TienePermisoImportes - GvCompras.Columns(3).Visible = TienePermisoImportes - GvCompras.Columns(4).Visible = TienePermisoDesmarcar + GvVentas.Columns(5).Visible = TienePermisoImportes + GvCompras.Columns(4).Visible = TienePermisoImportes + GvCompras.Columns(5).Visible = TienePermisoDesmarcar End Sub Private Sub CargaCombos() TxtFechaF.Text = Date.Now.ToShortDateString From db2428b1d2b5ff1184cb345a315924dcb6764991 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 20 Nov 2020 13:05:59 -0700 Subject: [PATCH 3/4] updatepanel proyecciones --- Inventarios/KardexAlmacenHorizontal.aspx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Inventarios/KardexAlmacenHorizontal.aspx b/Inventarios/KardexAlmacenHorizontal.aspx index 8cd28729b..f96654277 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx +++ b/Inventarios/KardexAlmacenHorizontal.aspx @@ -92,9 +92,16 @@
  • Generar Excel
  • + +
  • - + + +
  • +
    +
    + From 0faadb39f842006e15d0d89a5a56fc7ded7104d8 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 20 Nov 2020 18:38:24 -0700 Subject: [PATCH 4/4] Contratos Ventas, en amortizacion sugerir importe de a porcentje de anticipo y validar seleccion de estimacion y contrato. --- Ventas/Ventas.aspx | 13 +++- Ventas/Ventas.aspx.vb | 177 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 185 insertions(+), 5 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index aae116036..9e8be3ff7 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -7908,7 +7908,7 @@ $get('HdnTotalVenta').value = FormatoNumero(totalVenta, 2); } - function chkAnt(t, txt, importe) { + function chkAnt(t, txt, importe, AmorContrato = 0) { debugger; var totalAnt = 0; @@ -7925,6 +7925,8 @@ if (SaldoCompra > 0) { + + //if (SaldoCompra > importe) { // txt.value = importe.toFixed(2); // SaldoCompra = SaldoCompra - importe; @@ -7935,7 +7937,14 @@ // //SaldoCompra = 0.00; // $get('HdnVentaSaldo').value = SaldoCompra; //} - txt.value = importe.toFixed(2); + + if(AmorContrato > 0){ + txt.value = AmorContrato.toFixed(2); + }else{ + txt.value = importe.toFixed(2); + } + + totalAnt = FnSumaValoresAnt(); diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index fd606bd03..f78ed8c3a 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -1314,6 +1314,7 @@ Partial Class Ventas #End Region #Region "Propiedades Contratos" + Private Property DtContratos As DataTable Get Return If(IsNothing(ViewState("DtContratos")), Nothing, CType(ViewState("DtContratos"), DataTable)) @@ -1403,6 +1404,59 @@ Partial Class Ventas End Set End Property + + Private Property PorAmortizacionAnticipo As Integer + Get + + If ViewState("PorAmortizacionAnticipo") Is Nothing Then + Return 0 + Else + Return CType(ViewState("PorAmortizacionAnticipo"), Integer) + End If + + End Get + Set(value As Integer) + ViewState("PorAmortizacionAnticipo") = value + End Set + End Property + + + + + Private Property AmortizacionSujeridaContrato As Decimal + Get + + If ViewState("AmortizacionSujeridaContrato") Is Nothing Then + Return 0 + Else + Return ViewState("AmortizacionSujeridaContrato").ToString.ToDecimal + End If + + End Get + Set(value As Decimal) + ViewState("AmortizacionSujeridaContrato") = value + End Set + End Property + + Private Property EscontratoObra As Boolean + Get + If ViewState("EscontratoObra") Is Nothing Then + Return False + Else + Return Boolean.Parse(ViewState("EscontratoObra").ToString) + End If + + End Get + Set(value As Boolean) + ViewState("EscontratoObra") = value + End Set + End Property + + + + + + #End Region #Region " PROPIEDADES NUEVAS | GUARDAR - IMPRESION " @@ -1454,6 +1508,14 @@ Partial Class Ventas ViewState("ObjFacturaNC") = value End Set End Property + + + + + + + + #End Region #Region " PROPIEDADES NUEVAS " @@ -3077,6 +3139,19 @@ Partial Class Ventas Exit Sub End If + If DrContrato("CveContratoTipo").ToString.ToEntero.Contiene(30, 31) Then + PorAmortizacionAnticipo = DrContrato("PorAmortizacionAnticipo").ToString.ToEntero + EscontratoObra = True + Else + PorAmortizacionAnticipo = 0 + EscontratoObra = False + End If + + + + + + LbContratoImporteTotal.Text = DrContrato("ImporteTotal").ToString().FormatoNumero LbContratoImporteMinimo.Text = DrContrato("ImporteMin").ToString().FormatoNumero LbContratoImporteMaximo.Text = DrContrato("ImporteMax").ToString().FormatoNumero @@ -7228,6 +7303,9 @@ Partial Class Ventas Protected Sub EmitirImprimirNew(Optional TipoDoctoViejo As String = "") + If Not ValidaVentaContratoObra() Then + Exit Sub + End If If ValidaPagosContado() Then Exit Sub @@ -8775,7 +8853,7 @@ Partial Class Ventas ObjFactura.NumeroPersonas = 0 - If ObjFactura.TipoDocto = "Ant" And DdlContratosModal.SelectedValue.ToEntero > 0 Then + If ObjFactura.TipoDocto = "Ant" And DdlContratosModal.SelectedValue.ToEntero > 0 Or ObjFactura.TipoDocto = "Ing" And DdlContratosModal.SelectedValue.ToEntero > 0 Then CveContrato = DdlContratosModal.SelectedValue.ToEntero End If @@ -13107,8 +13185,19 @@ Partial Class Ventas maxsaldo = total End If + + If DdlContratosModal.SelectedValue.ToEntero > 0 AndAlso AmortizacionSujeridaContrato > 0 Then + + If AmortizacionSujeridaContrato > saldo Then + AmortizacionSujeridaContrato = saldo + End If + + End If + + + e.Row.FCLiteral("MonedaVenta").Text = saldo.FormatoNumero(2) - e.Row.FCCheckBox("Chk" & e.Row.RowIndex).Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1});", e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).ClientID, saldo)) + e.Row.FCCheckBox("Chk" & e.Row.RowIndex).Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2});", e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).ClientID, saldo, AmortizacionSujeridaContrato)) e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1});", e.Row.FCCheckBox("Chk" & e.Row.RowIndex).ClientID, saldo)) e.Row.FCTextBox("TxtTC" & e.Row.RowIndex).Attributes.Add("onKeyUp", String.Format("CambioTipoMoneda({0},{1},{2},{3},{4});", e.Row.FCCheckBox("Chk" & e.Row.RowIndex).ClientID, e.Row.DataKey("Saldo"), e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).ClientID, e.Row.FCTextBox("TxtTC" & e.Row.RowIndex).ClientID, e.Row.DataKey("CveMoneda"))) @@ -13145,7 +13234,7 @@ Partial Class Ventas - End If + End If End Sub Protected Sub BtnAceptarAnticipos_Click(sender As Object, e As System.EventArgs) Handles BtnAceptarAnticipos.Click Anticipos() @@ -25037,7 +25126,12 @@ Partial Class Ventas End Sub Private Sub DdlTipoAmortizacionAnticipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoAmortizacionAnticipo.SelectedIndexChanged + + + ImporteSujeridoAnticipo(DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero) + divAnticipoMsg.Visible = False + If DdlTipoAmortizacionAnticipo.SelectedValue.Contiene("1", "2") Then 'cuando es amortización por descuento, debe tener seleccionado descuentos previamente registrados If DdlTipoAmortizacionAnticipo.SelectedValue = "1" AndAlso LblDescuentos.Text.ToDecimal <= 0 Then @@ -25059,6 +25153,34 @@ Partial Class Ventas DdlTipoRelacionAnticipo.SelectedValueExist("-1") End If + + End Sub + + + Private Sub ImporteSujeridoAnticipo(TipoAmortizacion As Integer) + + 'TipoAmortizacion + '1.-Anticpo como descuento se basa en subtotal + '2.-Anticipo con notade credito se basa en total + + AmortizacionSujeridaContrato = 0 + Dim Porcentaje As Decimal = PorAmortizacionAnticipo * 0.01D + + If PorAmortizacionAnticipo > 0 AndAlso TipoAmortizacion > 0 Then + + If TipoAmortizacion = 1 Then + AmortizacionSujeridaContrato = (TxtSubTotal2.Text.ToDecimal * Porcentaje).RoundSQL(2) + ElseIf TipoAmortizacion = 2 Then + AmortizacionSujeridaContrato = (TxtTotal.Text.ToDecimal * Porcentaje).RoundSQL(2) + End If + + Else + AmortizacionSujeridaContrato = 0 + End If + + + + End Sub Private Sub DdlMetodoPago33_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlMetodoPago33.SelectedIndexChanged @@ -27726,6 +27848,55 @@ Partial Class Ventas End If End Sub + + Function ValidaVentaContratoObra() As Boolean + + Dim Respuesta As Boolean = False + + If EscontratoObra Then + + If DdlTipoComprobante.SelectedValue = "Ing" Then + + If DdlEstimacionesObra.SelectedValue.ToEntero > 0 Then + + Dim ImporteAmortizarFinal As Decimal = 0 + If GVAnticipos.Rows.Count > 0 Then + Dim actualindex As Integer = 0 + For Each row2 As GridViewRow In GVAnticipos.Rows + If row2.FCCheckBox("Chk" & row2.RowIndex).Checked Then + ImporteAmortizarFinal = ImporteAmortizarFinal + row2.FCTextBox($"TxtAnticipo{actualindex}").Text.ToDecimal + End If + actualindex = actualindex + 1 + Next + End If + + If ImporteAmortizarFinal > 0 Then + Respuesta = True + Else + Respuesta = False + Alert("Debe de seleccioanr un importe de amortización.", TipoMensaje.MsgAdvertencia) + End If + + Else + Respuesta = False + Alert("Se selecciono un contrato de obra, para continuar seleccione una estimación.", TipoMensaje.MsgAdvertencia) + End If + + ElseIf DdlTipoComprobante.SelectedValue = "Ant" Then + Respuesta = True + Else + Alert("Tipo de documento no valido para contratos de obra.", TipoMensaje.MsgAdvertencia) + Respuesta = True + End If + + Else + Respuesta = True + End If + + Return Respuesta + + End Function + #End Region
    ArchivoEstado