Package org.compiere.model

Examples of org.compiere.model.MMailText


      + ", C_Invoice_ID=" + m_C_Invoice_ID
      + ", EmailPDF=" + p_EMailPDF + ",R_MailText_ID=" + p_R_MailText_ID
      + ", DateInvoiced=" + m_dateInvoiced_From + "-" + m_dateInvoiced_To
      + ", DocumentNo=" + m_DocumentNo_From + "-" + m_DocumentNo_To);
   
    MMailText mText = null;
    if (p_R_MailText_ID != 0)
    {
      mText = new MMailText(getCtx(), p_R_MailText_ID, get_TrxName());
      if (mText.get_ID() != p_R_MailText_ID)
        throw new AdempiereUserError ("@NotFound@: @R_MailText_ID@ - " + p_R_MailText_ID);
    }

    //  Too broad selection
    if (m_C_BPartner_ID == 0 && m_C_Invoice_ID == 0 && m_dateInvoiced_From == null && m_dateInvoiced_To == null
      && m_DocumentNo_From == null && m_DocumentNo_To == null)
      throw new AdempiereUserError ("@RestrictSelection@");

    MClient client = MClient.get(getCtx());
   
    //  Get Info
    StringBuffer sql = new StringBuffer (
      "SELECT i.C_Invoice_ID,bp.AD_Language,c.IsMultiLingualDocument,"    //  1..3
      //  1/07/09 rgliddon:  Added Unapproved Invoice Print Format
      //  Prio: 1. BPartner 2. DocType, 3. Unapproved Invoice Print Format (Org)
      //        4. PrintFormat (Org)  //  see ReportCtl+MInvoice
      + " COALESCE(bp.Invoice_PrintFormat_ID, dt.AD_PrintFormat_ID,"
                    +"CASE WHEN i.posted IS NULL OR i.posted = 'N' "
                         +"THEN pf.UnaprvdInvoice_PrintFormat_ID "
                    +"END, pf.Invoice_PrintFormat_ID),"  //  4
      + " dt.DocumentCopies+bp.DocumentCopies,"                //  5
      + " bpc.AD_User_ID, i.DocumentNo,"                    //  6..7
      + " bp.C_BPartner_ID "                          //  8
      + "FROM C_Invoice i"
      + " INNER JOIN C_BPartner bp ON (i.C_BPartner_ID=bp.C_BPartner_ID)"
      + " LEFT OUTER JOIN AD_User bpc ON (i.AD_User_ID=bpc.AD_User_ID)"
      + " INNER JOIN AD_Client c ON (i.AD_Client_ID=c.AD_Client_ID)"
      + " INNER JOIN AD_PrintForm pf ON (i.AD_Client_ID=pf.AD_Client_ID)"
      + " INNER JOIN C_DocType dt ON (i.C_DocType_ID=dt.C_DocType_ID)"
        + " WHERE i.AD_Client_ID=? AND i.AD_Org_ID=? AND i.isSOTrx='Y' AND "
        + "       pf.AD_Org_ID IN (0,i.AD_Org_ID) AND " )//  more them 1 PF
    boolean needAnd = false;
    if (m_C_Invoice_ID != 0)
      sql.append("i.C_Invoice_ID=").append(m_C_Invoice_ID);
    else
    {
      if (m_C_BPartner_ID != 0)
      {
        sql.append ("i.C_BPartner_ID=").append (m_C_BPartner_ID);
        needAnd = true;
      }
      if (m_dateInvoiced_From != null && m_dateInvoiced_To != null)
      {
        if (needAnd)
          sql.append(" AND ");
        sql.append("TRUNC(i.DateInvoiced) BETWEEN ")
          .append(DB.TO_DATE(m_dateInvoiced_From, true)).append(" AND ")
          .append(DB.TO_DATE(m_dateInvoiced_To, true));
        needAnd = true;
      }
      else if (m_dateInvoiced_From != null)
      {
        if (needAnd)
          sql.append(" AND ");
        sql.append("TRUNC(i.DateInvoiced) >= ")
          .append(DB.TO_DATE(m_dateInvoiced_From, true));
        needAnd = true;
      }
      else if (m_dateInvoiced_To != null)
      {
        if (needAnd)
          sql.append(" AND ");
        sql.append("TRUNC(i.DateInvoiced) <= ")
          .append(DB.TO_DATE(m_dateInvoiced_To, true));
        needAnd = true;
      }
      else if (m_DocumentNo_From != null && m_DocumentNo_To != null)
      {
        if (needAnd)
          sql.append(" AND ");
        sql.append("i.DocumentNo BETWEEN ")
          .append(DB.TO_STRING(m_DocumentNo_From)).append(" AND ")
          .append(DB.TO_STRING(m_DocumentNo_To));
      }
      else if (m_DocumentNo_From != null)
      {
        if (needAnd)
          sql.append(" AND ");
        if (m_DocumentNo_From.indexOf('%') == -1)
          sql.append("i.DocumentNo >= ")
            .append(DB.TO_STRING(m_DocumentNo_From));
        else
          sql.append("i.DocumentNo LIKE ")
            .append(DB.TO_STRING(m_DocumentNo_From));
      }
     
      if (p_EMailPDF)
      {
        if (needAnd)
        {
          sql.append(" AND ");
        }
        /* if emailed to customer only select COmpleted & CLosed invoices */
        sql.append("i.DocStatus IN ('CO','CL') ");
      }
    }
    sql.append(" ORDER BY i.C_Invoice_ID, pf.AD_Org_ID DESC")//  more than 1 PF record
    log.fine(sql.toString());

    MPrintFormat format = null;
    int old_AD_PrintFormat_ID = -1;
    int old_C_Invoice_ID = -1;
    int C_BPartner_ID = 0;
    int count = 0;
    int errors = 0;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
   
    try
    {
      pstmt = DB.prepareStatement(sql.toString(), get_TrxName());
      pstmt.setInt(1, Env.getAD_Client_ID(Env.getCtx()));
      pstmt.setInt(2, Env.getAD_Org_ID(Env.getCtx()));
      rs = pstmt.executeQuery();
     
      while (rs.next())
      {
        int C_Invoice_ID = rs.getInt(1);
        if (C_Invoice_ID == old_C_Invoice_ID//  multiple pf records
          continue;
        old_C_Invoice_ID = C_Invoice_ID;
        //  Set Language when enabled
        Language language = Language.getLoginLanguage();    //  Base Language
        String AD_Language = rs.getString(2);
        if (AD_Language != null && "Y".equals(rs.getString(3)))
          language = Language.getLanguage(AD_Language);
        //
        int AD_PrintFormat_ID = rs.getInt(4);
        int copies = rs.getInt(5);
        if (copies == 0)
          copies = 1;
        int AD_User_ID = rs.getInt(6);
        MUser to = new MUser (getCtx(), AD_User_ID, get_TrxName());
        String DocumentNo = rs.getString(7);
        C_BPartner_ID = rs.getInt(8);
        //
        String documentDir = client.getDocumentDir();
        if (documentDir == null || documentDir.length() == 0)
          documentDir = ".";
        //
        if (p_EMailPDF && (to.get_ID() == 0 || to.getEMail() == null || to.getEMail().length() == 0))
        {
          addLog (C_Invoice_ID, null, null, DocumentNo + " @RequestActionEMailNoTo@");
          errors++;
          continue;
        }
        if (AD_PrintFormat_ID == 0)
        {
          addLog (C_Invoice_ID, null, null, DocumentNo + " No Print Format");
          errors++;
          continue;
        }
        //  Get Format & Data
        if (AD_PrintFormat_ID != old_AD_PrintFormat_ID)
        {
          format = MPrintFormat.get (getCtx(), AD_PrintFormat_ID, false);
          old_AD_PrintFormat_ID = AD_PrintFormat_ID;
        }
        format.setLanguage(language);
        format.setTranslationLanguage(language);
        //  query
        MQuery query = new MQuery("C_Invoice_Header_v");
        query.addRestriction("C_Invoice_ID", MQuery.EQUAL, new Integer(C_Invoice_ID));

        //  Engine
        PrintInfo info = new PrintInfo(
          DocumentNo,
          X_C_Invoice.Table_ID,
          C_Invoice_ID,
          C_BPartner_ID);
        info.setCopies(copies);
        ReportEngine re = new ReportEngine(getCtx(), format, query, info);
        boolean printed = false;
        if (p_EMailPDF)
        {
          String subject = mText.getMailHeader() + " - " + DocumentNo;
          EMail email = client.createEMail(to.getEMail(), subject, null);
          if (!email.isValid())
          {
            addLog (C_Invoice_ID, null, null,
              DocumentNo + " @RequestActionEMailError@ Invalid EMail: " + to);
            errors++;
            continue;
          }
          mText.setUser(to);          //  Context
          mText.setBPartner(C_BPartner_ID)//  Context
          mText.setPO(new MInvoice(getCtx(), C_Invoice_ID, get_TrxName()));
          String message = mText.getMailText(true);
          if (mText.isHtml())
            email.setMessageHTML(subject, message);
          else
          {
            email.setSubject (subject);
            email.setMessageText (message);
View Full Code Here

TOP

Related Classes of org.compiere.model.MMailText

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.