Anda di halaman 1dari 6

Mantenimiento de Data Directives Management

Iniciamos por la opcion de System Management en la siguiente ruta:


System Management
Business Process Management
Data Directives Management

Aqui buscamos el la Tabla a la cual le asignaremos una accion en caso de que se cumpla una condicion
Tomamos la opcion de Buscar por Directives

A traves de la pantalla de busqueda ubicamos y seleccionamos la tabla a usar en este caso tomaremos el archivo
de encabezado de cheques CheckHed para este ejemplo cada vez que un cheque es posteado se activa esta
directiva y se ejecutara el codigo C# correspondiente.
Luego de haberlo elegido nos aparece esta pantalla y seleccionamos Standard o In-Transaction segun
corresponda.

En esta pantalla seleccionaremos la opcion de design en caso que deseemos cambiar el comportamiento de este
Method
En este ejemplo tenemos la siguiente condicion: En caso que se este posteando un cheque en el archivo
de Encabezado de Cheques.

Aqui aparecen los campos de la tabla seleccionada para que indiquemos la condicion que producira que
el codigo sea ejecutado. Primero elejimos el campo y luego colocamos las condiciones que seran
verificadas ya sea una comparacion logica o matematica.
Luego seleccionaremos el bloque en el cual se ejecutara una serie de codigo C#, si la condicion
especificada se cumplio. Si hacemos click sobre la parte de execute custom se abrira la pantalla que
contiene el codigo que se ejecutara.

En esta pantalla se programara en C# el comportamiento que tendra la aplicacion


CODIGO
string mFrom = "compras@plasmultiform.com";
string mTo = string.Empty;
string mCc = string.Empty;
string mSubject = string.Empty;
string mBody = string.Empty;
string sRSM = string.Empty;
string formato = string.Empty;

Erp.Tables.PayMethod PayMethod;
Erp.Tables.Vendor Vendor;
Erp.Tables.APTran APTran;

var ttcheckhed_xRow = (from ttcheckhed_Row in ttCheckHed


where string.Equals(ttcheckhed_Row.RowMod, IceRow.ROWSTATE_UPDATED, StringComparison.OrdinalIgnoreCase) ||
string.Equals(ttcheckhed_Row.RowMod, IceRow.ROWSTATE_ADDED, StringComparison.OrdinalIgnoreCase)
select ttcheckhed_Row).FirstOrDefault();
PayMethod = (from PayMethod_Row in Db.PayMethod
where PayMethod_Row.Company == ttcheckhed_xRow.Company && PayMethod_Row.PMUID == ttcheckhed_xRow.PMUID
select PayMethod_Row).FirstOrDefault();
if (string.Compare(PayMethod.Name ,"Transferencia AP" ,true)==0|| string.Compare(PayMethod.Name ,"Transferencia AP" ,true)==0||
string.Compare(PayMethod.Name ,"CITIPLEU",true)==0)
{
Vendor = (from Vendor_Row in Db.Vendor
where Vendor_Row.VendorNum == ttcheckhed_xRow.VendorNum && Vendor_Row.Company == ttcheckhed_xRow.Company
select Vendor_Row).FirstOrDefault();
// mTo = Vendor.EMailAddress;
mTo = "juan.martinez@softnig.com.do";
mCc = "";//"juan.martinez@softnig.com.do";
mSubject = "PLASTICOS MULTIFORM - Aviso pago de facturas";
mBody = "<b>" + "Sres. " + Vendor.Name + "</b>" + ": <br>";
mBody = mBody + "Por medio del presente email se informa que las facturas detalladas a continuación han sido canceladas mediante transferencia
bancaria" + "<br>";
mBody = mBody + "-----------------------------------------------------------------------------------------------------------" + "<br>";

foreach (var APTran_iterator in (from APTran_Row in Db.APTran


where APTran_Row.Company == ttcheckhed_xRow.Company && string.Compare(APTran_Row.TranType ,"Pay" ,true)==0&&
APTran_Row.HeadNum == ttcheckhed_xRow.HeadNum select APTran_Row))
{
APTran = APTran_iterator;
mBody = mBody + " " + System.Convert.ToString(APTran.InvoiceNum) + " --> " + ttcheckhed_xRow.CurrencyCode + "$" +
APTran.DocTranAmt.ToString("###,###,##0.00") + "<br>";
}
mBody = mBody + "<br>" + "<u>" + "Total Transferido: " + "</u>" + "<b>" + ttcheckhed_xRow.CurrencyCode + "$" +
ttcheckhed_xRow.DocCheckAmt.ToString("###,###,##0.00") + "</b>" + "<br>";
mBody = mBody + "Método de pago : Transferencia " + "<br>";
mBody = mBody + "Cuenta Acreditada : " + ttcheckhed_xRow.VendorBankAcctNumber + " " + ttcheckhed_xRow.VendorBankName + "<br>" +
"<br>";

mBody = mBody + "1. Usted debe recibir el dinero entre 24 y 48 horas. De no ser asi favor contactar al Departamento de Cuentas por Pagar y
Tesoreria";
mBody = mBody + "<br>" + "2. El monto acreditado es neto de retenciones impositivas. De existir diferencia entre lo transferido y facturado favor
tomar en cuenta dichas retenciones." + "<br>";
mBody = mBody + "-----------------------------------------------------------------------------------------------------------" + "<br> <br>";
mBody = mBody + "Plásticos Multiform SAS." + "<br> <br>";

mBody = mBody + ". Este email es automático favor NO responder al origen. " + "<br>";

if (!String.IsNullOrEmpty(mTo))
{
System.Net.Mail.MailMessage correo = new System.Net.Mail.MailMessage();
correo.From = new System.Net.Mail.MailAddress(mFrom);
correo.To.Add(mTo);
correo.IsBodyHtml = true;
correo.Subject = mSubject;
correo.Body = mBody;
correo.Priority = System.Net.Mail.MailPriority.Normal;

System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("SMTP.plasmultiform.com");


smtp.Host = "SMTP.plasmultiform.com";
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential("interno@plasmultiform.com", "Interno@1978");

smtp.Send(correo);
}
}

Anda mungkin juga menyukai