<%
Option Explicit
Session.LCID = 2058
'***** SI NO HA INICIADO SESION ***
If Session("Mybussiness") = "" then
Response.redirect("default.asp")
Else
Session.Timeout = 1200
'******* EN CASO DE ERROR ****
Err.Clear
On Error Resume Next
'*** REMPLAZA
Function Sanea(Texto)
Sanea = Replace(Texto, "'", "''")
End Function
%>
<!DOCTYPE html>
<HTML>
<HEAD>
<meta charset="ISO-8859-1" />
<TITLE>SISTEMA MIM <%= Session("Mybussiness") %> USUARIO: <%= Session("MyName") %></TITLE>
<link href="css/Modulo5.css" rel="stylesheet" />
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
// End -->
</script>
</HEAD>
<BODY>
<%
'***** Variables a la base de datos ****
Dim Cn1
Dim Rs11, Rs12, Rs13, Rs14, Rs15, Rs16, Rs17, Rs18, rs19, Rs20, Rs21, Rs22, Rs23, Rs24, Rs25, Rs26, Rs27
Dim Rs28, Rs29, Rs30, Rs31, Rs32, Rs33, Rs34, Rs35
Dim Sql11, Sql12, Sql13, Sql14, Sql15, Sql16, Sql17, Sql18, Sql19, Sql20, Sql21, Sql22, Sql23, Sql24, Sql25, Sql26, Sql27
Dim Sql28, Sql29, Sql30, Sql31, Sql32, Sql33, Sql34, Sql35
Dim Reposicion
'***** Conexion a la Base de Datos
Set Cn1 = Server.CreateObject( "ADODB.Connection" )
Cn1.Open "DRIVER={SQL Server};SERVER=172.17.0.5;UID="& Session("MyName") &";PWD="& Session("MyPass") &";Database="& Session("Mybussiness") &""
'***** Conexion A la Tabla Empresa ****
Set Rs11 = Server.CreateObject("ADODB.Recordset")
Sql11="Select * from Empresa;"
Rs11.Open Sql11,Cn1,1,2
%>
<Header>
<%= Rs11("Nombre") %><br>
<%= Rs11("Direccion") %>, <%= Rs11("colonia") %><br>
<%= Rs11("Poblacion") %>
</header>
<SECTION>
<CENTER>
<br>
<b>Devolucion de Facturas</b>
<br><br>
<%
'--------------- DECLARO LAS VARIABLES DEL FORMULARIO ---------------
Dim Vanticipo, Tcanti, Refac, Ffacnum, Notas, UUIDANT, Pagcta
'--------------- VARIABLES PARA EL GRABADO DE RECORDSET --------------
Dim Folio, Sexion, Dact, Status, Element
Dim Importe, Iva, Retencion, Total, Ucosto, Cpromedio
Dim Ranticipo, Ivanticipo, Retanticipo, Tcanticipo, ImpAnticipo, ImpesosA, Monanticipo
Dim Idcxcg, IdcxcAn, Tmoneda
Dim Varimpo, Varpesos, VarTca, Tipo
'--------------- VACIO LAS VARIABLES ----------------------------
Vanticipo = Request("Vanticipo")
Tcanti = Request("Tcanti")
Refac = Request("Refac")
Ffacnum = Request("FFacnum")
Notas = Request("Notas")
Pagcta = Request ("Pagcta")
UUIDANT = Request("UUIDANT")
Sexion = Session.SessionId
Dact = Date()
'--------------- OBTENGO EL NUMERO DE LA NOTA DE CREDITO -----------
Set Rs12 = server.CreateObject("ADODB.Recordset")
Sql12="Select Ncredito from consecutivos;"
Rs12.Open Sql12,Cn1,1,2
Folio = Rs12("ncredito") + 1
Idcxcg = 1 & "-" & Ffacnum
'-------------- PROCESO PARA REGRESAR LAS PARTIDAS ---------------
for each element in request("chk")
'*** ACTUALIZA DETALLE DE FACTURAS ***
Set Rs13= server.CreateObject("ADODB.Recordset")
Sql13="Update Ffacdet set cdeffacd = (cdeffacd + canTfdev) " &_
"From Fdevdtem where rantfdev = regffacd and regtfdev = "& Request("txt_"&element) &" and sestfdev = "& Sexion &";"
Cn1.Execute Sql13
'*** INSERTA REGISTRO EN EL DETALLE DE DEVOLUCIONES ****
Set Rs14 = server.CreateObject("ADODB.Recordset")
Sql14=" Insert Into Fdevdet " &_
"(Numfdevd, Clifdevd, Secfdevd, canfdevd, Almfdevd, Codfdevd, Monfdevd, Tcafdevd, Unifdevd, Cosfdevd, " &_
"Profdevd, Antfdevd, ranfdevd, usufdevd, ClaveProdD, ClaveUnidadD, Repofdevd) " &_
"Select "& Folio &", Clitfdev, sectfdev, Cantfdev, almtfdev, codtfdev, Montfdev, Tcatfdev, unitfdev, costfdev, " &_
"Protfdev, anttfdev, rantfdev, '"& Session("MyName") &"', ClaveProdDT, ClaveUnidadDT, RepoTfdevd " &_
"from fdevdtem where regtfdev = "& Request("txt_"&element) &" " &_
"and sestfdev = "& Sexion &";"
Cn1.Execute Sql14
If Cdbl(Refac) = 0 then
'*** INSERTA REGISTRO EN MOVIMIENTOS AL INVENTARIO ****
Set Rs15 = server.CreateObject("ADODB.Recordset")
Sql15="Insert into MovInv (TmoMinv, Docminv, FecMinv, AlmMinv, CodMinv, CanMinv, ExiMinv, PrVMInv, UcoMinv, CpMinv, " &_
"PgaMinv, MonMinv, TcaMinv, CPRMinv, VenMinv, UsrMinv) " &_
"Select 2, '"& Folio &"', '"& Dact &"', almtfdev, Codtfdev, Cantfdev, (exiRmul + Cantfdev), 0, Costfdev, " &_
"(((exiRmul * cpmul) + (protfdev * cANtfdev)) / (exiRmul + cantfdev)), " &_
"0, montfdev, tcatfdev, Clitfdev, 0, '"& Session("MyName") &"' from fdevdtem, multialmacen " &_
"where regtfdev = "& Request("txt_"&element) &" and almmul = almtfdev and artmul = codtfdev and sestfdev = "& Sexion &";"
Cn1.Execute Sql15
'*** ACTUALIZA EXISTENCIAS EN LA TABLA DE INVENTARIOS ****
Set Rs16 = server.CreateObject("ADODB.Recordset")
Sql16="Update Inventarios set cpinv = (((exiRinv * cpinv) + (Cantfdev * Protfdev)) / ((exiRinv + cantfdev))), " &_
"ultcinv = costfdev, exiinv = (Exiinv + cantfdev), ExiRinv = (ExiRinv + Cantfdev) " &_
"from Fdevdtem where cveinv = codtfdev and regtfdev = "& Request("txt_"&element) &" and sestfdev = "& Sexion &";"
Cn1.Execute Sql16
'*** ACTUALIZA EXISTENCIAS EN MULTIALMACEN ***
Set Rs17 = server.CreateObject("ADODB.Recordset")
Sql17="Update Multialmacen set cpmul = (((exiRmul * cpmul) + (cantfdev * Protfdev)) / ((exiRmul + cantfdev))), " &_
"Eximul = (eximul + cantfdev), fucmul = '"& Dact &"', ucomul = costfdev, ExiRmul = (ExiRmul + Cantfdev) " &_
"from fdevdtem where almmul = almtfdev and artmul = codtfdev and regtfdev = "& Request("txt_"&element) &" and sestfdev = "& Sexion &";"
Cn1.Execute Sql17
'*** ACTUALIZA CAPA UEPS EN UEPS ***
Set Rs18 = server.CreateObject("ADODB.Recordset")
Sql18="Insert Into Ueps (FecUeps, ComUeps, Almueps, codueps, canueps, punueps, pinueps, ppiueps) " &_
"Select '"& Dact &"', '"& Folio &"', Almtfdev, Codtfdev, Cantfdev, costfdev, 0, 0 " &_
"From Fdevdtem where regtfdev = "& Request("txt_"&element) &" and sestfdev = "& Sexion &";"
Cn1.Execute Sql18
'*** ACTUALIZA CAPA UEPS CONTABILIDAD ***
Set Rs19 = server.CreateObject("ADODB.Recordset")
Sql19="Insert Into Uepsc (FecUepsc, ComUepsc, Almuepsc, coduepsc, canuepsc, punuepsc, pinuepsc) " &_
"Select '"& Dact &"', '"& Folio &"', Almtfdev, Codtfdev, Cantfdev, Costfdev, 0 " &_
"From Fdevdtem where regtfdev = "& Request("txt_"&element) &" and sestfdev = "& Sexion &";"
Cn1.Execute Sql19
Else If Cdbl(refac) = 1 then
'**** ACTUALIZA EL ENCABEZADO DE REMISIONES
Set Rs20 = server.CreateObject("ADODB.Recordset")
Sql20="Update Fremenc set Stafreme = 'P' From fremdet, Ffacdet, fdevdtem where sigfremd = "& ffacnum &" " &_
"and numfreme = nrefremd and regfremd = rgrffacd and rantfdev = regffacd and regtfdev = "& Request("txt_"&element) &";"
Cn1.Execute Sql20
'*** ACTUALIZA EL DETALLE DE REMISIONES ***
Set Rs21 = server.CreateObject("ADODB.Recordset")
Sql21="Update Fremdet set Csufremd = (Csufremd - Cantfdev), Cpefremd = (Cpefremd + Cantfdev), sigfremd = null "&_
"From ffacdet, fdevdtem where sigfremd = "& ffacnum &" and regfremd = rgrffacd " &_
"and rantfdev = regffacd and regtfdev = "& Request("txt_"&element) &";"
Cn1.Execute Sql21
End If
End If
Next
'---------- OBTENGO LOS TOTALES ------------------
Set Rs22 = server.CreateObject("ADODB.Recordset")
Sql22 = "select Round(sum(cantfdev * Unitfdev),2) as Importe, " &_
"Round(sum((cantfdev * Unitfdev * Ivafface)/100),2) as Iva, " &_
"sum((cantfdev * Unitfdev * retefface)/100) as Retencion, " &_
"sum(cantfdev * costfdev) as Ucosto, " &_
"sum(cantfdev * Protfdev) as CPromedio, " &_
"sum(cantfdev * Repotfdevd) as Reposicion, " &_
"Sum((cantfdev * Unitfdev) + ((cantfdev * Unitfdev * Ivafface)/100) - ((cantfdev * Unitfdev * retefface)/100)) As Total " &_
"from fdevdtem, Ffacenc where numfface = factfdev and numfface = "& Ffacnum &" and sestfdev = "& Sexion &";"
Rs22.Open Sql22,Cn1,1,2
Importe = Rs22("Importe")
Iva = Rs22("Iva")
Retencion = Rs22("Retencion")
Total = Rs22("Total")
Ucosto = Rs22("Ucosto")
Cpromedio = Rs22("Cpromedio")
Reposicion = Rs22("Reposicion")
'--------- TRAIGO EL VALOR DEL ANTICIPO --------------
If Cdbl(Vanticipo) = 0 then
Ranticipo = 0
Ivanticipo = 0
Retanticipo = 0
Tcanticipo = 0
ImpAnticipo = 0
ImpesosA = 0
Vartca = 0
Else
'*** OBTENGO EL REGISTRO DEL ANTICIPO ***
Set Rs23 = server.CreateObject("ADODB.Recordset")
Sql23="Select Anticipo, Ranticipo, Tmoneda from facdevu where Factura = "& Ffacnum &";"
Rs23.open Sql23,cn1,1,2
Ranticipo = Rs23("Ranticipo")
Tmoneda = Rs23("Tmoneda")
'*** OBTENGO EL VALOR DEL ANTICIPO ***
If Cdbl(Ranticipo) = 0 then
ImpAnticipo = 0
Vartca = 0
else
Set Rs24 = server.CreateObject("ADODB.Recordset")
Sql24="Select Regcxcg, Movcxcg, Clicxcg, Ivacxcg, Retcxcg, Moncxcg, Tcacxcg, Idrcxcg " &_
"From cxcgen where regcxcg = "& Ranticipo &";"
Rs24.open Sql24,Cn1,1,2
Monanticipo = Rs24("Moncxcg")
Ivanticipo = Rs24("Ivacxcg")
Retanticipo = Rs24("Retcxcg")
Tcanticipo = Rs24("Tcacxcg")
ImpAnticipo = Cdbl(Vanticipo)
ImpesosA = Cdbl(Vanticipo) * Cdbl(Tcanticipo)
IdcxcAn = Rs24("Idrcxcg")
If Cdbl(Tmoneda) < Cdbl(Monanticipo) then
VarTca = Tcanticipo
VarImpo = Cdbl(Impanticipo) / Cdbl(Vartca)
Varpesos = Impanticipo
Else If Cdbl(Tmoneda) = Cdbl(Monanticipo) then
VarTca = Tcanticipo
VarImpo = Impanticipo
Varpesos = Cdbl(Impanticipo) * Cdbl(Vartca)
Else If Cdbl(Tmoneda) > Cdbl(Monanticipo) then
VarTca = Tcanti
VarImpo = Cdbl(Impanticipo) * Cdbl(Vartca)
Varpesos = Cdbl(Impanticipo) * Cdbl(Vartca)
End If
End If
End If
End If
End If
'*** APLICO PAGO DE CUENTA ***
If Pagcta = 1 Then
Tipo = 2
Else
Tipo = 1
End If
'*** GRABO EL ENCABEZADO DE LA DEVOLUCION ****
Set Rs25 = server.CreateObject("ADODB.Recordset")
Sql25 = "Insert into FdevEnc " &_
"(numfdeve, fecfdeve, clifdeve, esqfdeve, ivafdeve, retfdeve, monfdeve, tcafdeve, stafdeve, Ucofdeve, Cprfdeve, " &_
"subfdeve, ivtfdeve, imrfdeve, totfdeve, usufdeve, antifdeve, obsfdeve, Repofdeve) " &_
"select "& Folio &", '"& Dact &"', Clifface, esqfface, Ivafface, Retefface, monfface, tcafface, '"& Status &"', "& Ucosto &", "& Cpromedio &", " &_
""& Importe &", "& Iva &", "& retencion &", "& Total &", '"& Session("MyName") &"', "& ImpAnticipo &", '"& Sanea(Notas) &"', "& Reposicion &" From Ffacenc " &_
"Where Numfface = "& FFacnum &";"
Cn1.Execute Sql25
'**** INSERTA REGISTRO EN LA TABLA DE CXCNCR ***
Set Rs26 = server.CreateObject("ADODB.Recordset")
Sql26 = "Insert into CxcNcr " &_
"(NumNcr, FecNcr, CliNcr, NotNcr, DocNcr, MonNcr, TcaNcr, EsqNcr, IvaNcr, RetNcr, SubNcr, " &_
"IvTNcr, ImpNcr, ImxNcr, AntNcr, TanNcr, Impreso, MotNcr, RecNcr, UsuNca, TipoD, Ucosto, Cpromedio, " &_
"METODOPAGO, USOCFDIC, TIPOREL, UUIDANT, FFORMA) " &_
"select "& Folio &", '"& Dact &"', Clifface, '"& Sanea(Notas) &"', "& Ffacnum &", monfface, tcafface, " &_
"EsqFface, Ivafface, Retefface, "& Importe &", "& Iva &", "& Total &", ("& Total &" * Tcafface), "& Impanticipo &", " &_
""& Vartca &", 0, 0, 7, '"& Session("MyName") &"', "& Tipo &", "& ucosto &", "& cpromedio &", " &_
"'PPD', 'G01', '03', '"& Sanea(UUIDANT) &"', '99' " &_
"From Ffacenc " &_
"Where Numfface = "& FFacnum &";"
Cn1.Execute Sql26
'*** INSERTO LA DEVOLUCION EN EL DETALLE DE CXC ***
Set Rs27 = server.CreateObject("ADODB.Recordset")
Sql27 = "Insert into Cxcdet " &_
"(Movcxcd, Clicxcd, Nfacxcd, Refcxcd, Doccxcd, Frecxcd, fpacxcd, moncxcd, tcacxcd, ImDcxcd, imPcxcd, TCDCXCD, idcxcg) " &_
"select 16, clifface, "& FFACNUM &", "& Folio &", "& Folio &", '"& Dact &"', '"& Dact &"', monfface, tcafface, " &_
"(-1 * ("& Total &")), (-1 * ("& Total &" * Tcafface)), 0, '"& Idcxcg &"' From Ffacenc Where Numfface = "& FFacnum &";"
Cn1.Execute Sql27
'*** ACTUALIZA EL IMPORTE DEL GENERAL DE CUENTAS POR PAGAR
Set Rs28 = server.CreateObject("ADODB.Recordset")
Sql28 = "Update Cxcgen " &_
"set Nccxcg = (Nccxcg + "& Total &"), salcxcg = (Salcxcg - "& Total &"), " &_
"imtcxcg = (imtcxcg - ( "& Total &" * tcafface)), PAGCXCG = (PAGCXCG + "& TOTAL &") From Ffacenc where Idrcxcg = '"& Idcxcg &"' " &_
"and nfacxcg = numfface;"
Cn1.Execute Sql28
'---- ACTUALIZA EL SALDO DEL CLIENTE ***
Set Rs29 = server.CreateObject("ADODB.Recordset")
Sql29 = "Update Clientes " &_
"set Salcli = (Salcli - ("& Total &" * tcafface)) From Ffacenc where numfface = "& Ffacnum &" " &_
"and clifface = clacli;"
Cn1.Execute Sql29
'*** APLICO DEVOLUCION DE ANTICIPO ***
If Cdbl(Vanticipo) > 0 Then
'----- INSERTO LA DEVOLUCION DEL ANTICIPO EN EL REGISTRO DE ANTICIPO ***
Set Rs30 = server.CreateObject("ADODB.Recordset")
Sql30 = "Insert into Cxcdet " &_
"(Movcxcd, Clicxcd, Nfacxcd, Refcxcd, Doccxcd, Frecxcd, fpacxcd, moncxcd, tcacxcd, ImDcxcd, imPcxcd, TCDCXCD, idcxcg) " &_
"Select 34, Clicxcg, nfacxcg, "& Folio &", "& Folio &", '"& Dact &"', '"& Dact &"', Moncxcg, " &_
"Tcacxcg, ("& Varimpo &" * -1), ("& Varpesos &" * -1), 0, '"& IdcxcAn &"' From Cxcgen where idrcxcg = '"& IdcxcAn &"';"
Cn1.Execute Sql30
'*** INSERTO EL REGISTRO EN LA FACTURA QUE SE ESTA DEVOLVIENDO
Set Rs31 = server.CreateObject("ADODB.Recordset")
Sql31 = "Insert into Cxcdet " &_
"(Movcxcd, Clicxcd, Nfacxcd, Refcxcd, Doccxcd, Frecxcd, fpacxcd, moncxcd, tcacxcd, ImDcxcd, imPcxcd, TCDCXCD, idcxcg) " &_
"Select 33, Clicxcg, nfacxcg, "& Folio &", "& Folio &", '"& Dact &"', '"& Dact &"', "& Monanticipo &", " &_
"Tcacxcg, "& Varimpo &", "& Varpesos &", 0, '"& IdcxcG &"' from cxcgen where idrcxcg = '"& Idcxcg &"';"
Cn1.Execute Sql31
'*** ACTUALIZO EL SALDO DEL ANTICIPO ***
Set Rs32 = server.CreateObject("ADODB.Recordset")
Sql32 = "Update Cxcgen " &_
"set salcxcg = Salcxcg - "& Varimpo &", " &_
"imtcxcg = imtcxcg - "& Varpesos &", PAGCXCG = PAGCXCG - "& Varimpo &" where Idrcxcg = '"& IdcxcaN &"';"
Cn1.Execute Sql32
'*** ACTUALIZO EL SALDO DE LA FACTURA ***
Set Rs33 = server.CreateObject("ADODB.Recordset")
Sql33 = "Update Cxcgen " &_
"set salcxcg = Salcxcg + "& Varimpo &", " &_
"imtcxcg = imtcxcg + "& Varpesos &", PAGCXCG = PAGCXCG + "& Varimpo &" where Idrcxcg = '"& Idcxcg &"';"
Cn1.Execute Sql33
Else
End If
Set Rs34 = server.CreateObject("ADODB.Recordset")
Sql34="Update Consecutivos set Ncredito = "& Folio &";"
Cn1.Execute Sql34
Set Rs35 = server.CreateObject("ADODB.Recordset")
SQL35="delete fdevdtem where sestfdev = "& sexion &";"
Cn1.Execute Sql35
Response.redirect("TransferNcr.asp")
%>
</SECTION>
<%
If Err.Number <> 0 Then
%>
<br><br>
Número de Error: <%= Err.Number %><BR>
Descripción: <%= Err.Description %><BR>
Origen: <%= Err.Source %><BR>
Linea: <%= Err.Line %><BR>
<br>
<%
Else
'****** FIN DE LOS ERRORES ***
End If
%>
</BODY>
</HTML>
<%
'FIN DE SESION
End If
%>