Example #1
0
 public FacturaDeCompraPM(ConexionDB DatosConexionDB)
 {
     _DatosConexionDB = DatosConexionDB;
     facturaPm        = new taPMTransactionInsert();
     facturaPmType    = new PMTransactionType();
     _distribucionPm  = new taPMDistribution_ItemsTaPMDistribution[2];
 }
Example #2
0
        /// <summary>
        /// Serialize Transaction
        /// </summary>
        /// <param name="transactionType"></param>
        /// <returns></returns>
        private string SerializePMTransaction(PMTransactionType transactionType)
        {
            try
            {
                eConnectType        eConnect = new eConnectType();
                PMTransactionType[] TranType = { transactionType };
                eConnect.PMTransactionType = TranType;

                MemoryStream ms = new MemoryStream();

                XmlSerializer serializer = new XmlSerializer(eConnect.GetType());
                serializer.Serialize(ms, eConnect);
                ms.Position = 0;
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(ms);

                string TransactionXML = xmldoc.OuterXml;

                return(TransactionXML);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public APInvoiceResponseDto ImportGPInvoice(taPMTransactionInsert pmTransaction)
        {
            var response = new APInvoiceResponseDto();

            try
            {
                var PMTransaction = new PMTransactionType();
                PMTransaction.taPMTransactionInsert = pmTransaction;

                PMTransactionType[] PMTransType = { PMTransaction };

                eConnectType eConnect = new eConnectType();
                eConnect.PMTransactionType = PMTransType;

                MemoryStream  memStream  = new MemoryStream();
                XmlSerializer serializer = new XmlSerializer(eConnect.GetType());
                serializer.Serialize(memStream, eConnect);
                memStream.Position = 0;

                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load(memStream);
                memStream.Close();

                string finalXML = xmlDocument.OuterXml;

                string responseMessage = string.Empty;
                string errorMessage    = string.Empty;

                string voucher   = pmTransaction.VCHNUMWK;
                string docNumber = pmTransaction.DOCNUMBR;
                string vendorID  = pmTransaction.VENDORID;

                bool success = eConn.CreateTransactionEntity(ref responseMessage, finalXML, _config.Value.GPCompanyDB);

                response.Success   = success;
                response.ErrorCode = 0;

                if (success)
                {
                    response.Message = "Vendor " + vendorID + " invoice " + docNumber + " imported as voucher " + voucher;
                }
                else
                {
                    errorMessage       = "Failed to import vendor " + vendorID + " invoice " + docNumber + ": " + responseMessage;
                    response.Message   = errorMessage;
                    response.ErrorCode = LoggingEvents.INSERT_INVOICE_FAILED;
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.Success   = false;
                response.ErrorCode = LoggingEvents.INSERT_INVOICE_EXCEPTION;
                response.Message   = "An unexpected error occured in ImportGPInvoice: " + ex.Message;
                return(response);
            }
        }
Example #4
0
        /// <summary>
        /// Create PM transaction
        /// </summary>
        /// <param name="transaction">Header of PM transaction</param>
        /// <param name="Distribution">Distribution Account of PM Transaction</param>
        /// <param name="Taxes">Taxes of PM transaction</param>
        /// <param name="company">COMPANY SHORT NAME</param>
        /// <returns>Response Class</returns>
        public Response TransactionCreate(PMTransactionHeader transaction, PMTransactionDist[] Distribution, PMTransactionTax[] Taxes, string company)
        {
            Response response;
            string   server         = ConfigKey.ReadSetting("SERVER");
            string   transactionXML = string.Empty;
            //var server = Properties.Settings.Default.SERVER.ToString();
            string            CNX        = "data source=" + server + ";initial catalog=" + company + ";integrated security=SSPI;persist security info=False;packet size=4096";
            var               eConnect   = new eConnectRequest();
            PMTransactionType pmTranType = new PMTransactionType();

            var getnext = new GetNextDocNumbers();

            getnext.RequireServiceProxy = false;

            try
            {
                string VCHRNUMBER = getnext.GetPMNextVoucherNumber(IncrementDecrement.Increment, CNX);
                pmTranType.taPMTransactionInsert = SetTransactionValues(transaction, VCHRNUMBER);

                if (transaction.CREATEDIST == 0)
                {
                    pmTranType.taPMDistribution_Items = SetDistributionValues(Distribution, VCHRNUMBER);
                }
                if (transaction.CreateTaxes == 1)
                {
                    pmTranType.taPMTransactionTaxInsert_Items = SetTaxValues(Taxes, VCHRNUMBER);
                }

                transactionXML = SerializePMTransaction(pmTranType);

                response = eConnect.CreateGPTransaction(CNX, transactionXML);
                return(response);
            }
            catch (Exception ex)
            {
                response         = new Response();
                response.SUCCESS = false;
                response.MESSAGE = ex.Message;
                response.STACK   = ex.StackTrace; //+ " Inner Exception: " + ex.InnerException.Message;
                return(response);
            }
            finally
            {
                getnext.Dispose();
            }
        }
Example #5
0
        /// <summary>
        /// serialize payables object
        /// </summary>
        /// <param name="filename"></param>
        public static void SerializePayablesObject(string filename)
        {
            try
            {
                // Instantiate an eConnectType schema object
                eConnectType eConnect = new eConnectType();

                // Instantiate a PMTransactionType  schema object
                PMTransactionType transactionType = new PMTransactionType();

                // Instantiate a taPMTransactionInsert XML node object
                taPMTransactionInsert transaction = new taPMTransactionInsert();

                // Create an XML serializer object
                XmlSerializer serializer = new XmlSerializer(eConnect.GetType());

                // Populate elements of the taPMTransactionInsert XML node object
                //transaction.CUSTNMBR = "Customer001";
                //transaction.CUSTNAME = "Customer 1";
                //transaction.ADDRESS1 = "2002 60th St SW";
                //transaction.ADRSCODE = "Primary";
                //transaction.CITY = "NewCity";
                //transaction.ZIPCODE = "52302";

                // Populate the PMTransactionType schema with the taPMTransactionInsert XML node
                transactionType.taPMTransactionInsert = transaction;
                PMTransactionType[] payablesTransaction = { transactionType };

                // Populate the eConnectType object with the PMTransactionType schema object
                eConnect.PMTransactionType = payablesTransaction;

                // Create objects to create file and write the customer XML to the file
                FileStream    fs     = new FileStream(filename, FileMode.Create);
                XmlTextWriter writer = new XmlTextWriter(fs, new UTF8Encoding());

                // Serialize the eConnectType object to a file using the XmlTextWriter.
                serializer.Serialize(writer, eConnect);
                writer.Close();
            }
            // catch any errors that occur and display them to the console
            catch (System.Exception ex)
            {
                Console.Write(ex.ToString());
            }
        }
Example #6
0
        /// <summary>
        /// save new payable transaction
        /// </summary>
        /// <param name="payable"></param>
        /// <returns></returns>
        public OperationResult SavePayableTransaction(PM10000_Payables_Work payable)
        {
            var operationResult = new OperationResult();

            logger.Debug("Payable is being created...");

            using (eConnectMethods e = new eConnectMethods())
            {
                try
                {
                    // Instantiate a taPMTransactionInsert XML node object
                    taPMTransactionInsert transaction = new taPMTransactionInsert();

                    //Populate elements of the taUpdateCreateItemRcd XML node object
                    transaction.BACHNUMB = payable.BACHNUMB;
                    transaction.VCHNUMWK = payable.VCHNUMWK;
                    transaction.VENDORID = payable.VENDORID;
                    transaction.DOCNUMBR = payable.DOCNUMBR;
                    transaction.DOCTYPE  = payable.DOCTYPE;
                    transaction.DOCAMNT  = payable.DOCAMNT;
                    transaction.DOCDATE  = payable.DOCDATE.ToShortDateString();
                    transaction.MSCCHAMT = payable.MSCCHAMT;
                    transaction.PRCHAMNT = payable.PRCHAMNT;
                    transaction.CHRGAMNT = payable.CHRGAMNT;
                    transaction.TAXAMNT  = payable.TAXAMNT;
                    transaction.FRTAMNT  = payable.FRTAMNT;
                    transaction.TRDISAMT = payable.TRDISAMT;
                    transaction.CASHAMNT = payable.CASHAMNT;
                    transaction.CHEKAMNT = payable.CHEKAMNT;
                    transaction.CRCRDAMT = payable.CRCRDAMT;
                    transaction.DISTKNAM = payable.DISTKNAM;

                    // Instantiate a PMTransactionType schema object
                    PMTransactionType transactiontype = new PMTransactionType();

                    // Populate the PMTransactionType schema with the taPMTransactionInsert XML node
                    transactiontype.taPMTransactionInsert = transaction;
                    PMTransactionType[] payableTransaction = { transactiontype };

                    // Instantiate an eConnectType schema object
                    eConnectType eConnect = new eConnectType();

                    // Instantiate a Memory Stream object
                    MemoryStream memoryStream = new MemoryStream();

                    // Create an XML serializer object
                    XmlSerializer serializer = new XmlSerializer(eConnect.GetType());

                    // Populate the eConnectType object with the PMTransactionType schema object
                    eConnect.PMTransactionType = payableTransaction;

                    // Serialize the eConnectType.
                    serializer.Serialize(memoryStream, eConnect);

                    // Reset the position of the memory stream to the start.
                    memoryStream.Position = 0;

                    // Create an XmlDocument from the serialized eConnectType in memory.
                    XmlDocument xmlDocument = new XmlDocument();
                    xmlDocument.Load(memoryStream);
                    memoryStream.Close();

                    // Call eConnect to process the XmlDocument.
                    e.CreateEntity(_dynamicsConnection, xmlDocument.OuterXml);

                    operationResult.Success = true;
                    operationResult.Message = "Success";
                }
                // The eConnectException class will catch eConnect business logic errors.
                // display the error message on the console
                catch (eConnectException exc)
                {
                    Console.Write(exc.ToString());
                    operationResult.Success = false;
                    operationResult.Message = "Error";
                    logger.ErrorFormat("Error saving new payables transaction: {0} ", exc.ToString());
                }
                // Catch any system error that might occurr.
                // display the error message on the console
                catch (System.Exception ex)
                {
                    Console.Write(ex.ToString());
                    operationResult.Success = false;
                    operationResult.Message = "Error";
                    logger.ErrorFormat("Error saving new payables transaction: {0} ", ex.ToString());
                }
                finally
                {
                    // Call the Dispose method to release the resources
                    // of the eConnectMethds object
                    e.Dispose();
                }
            } // end of using statement

            return(operationResult);
        }
Example #7
0
        private static void SerializeObject(string filename)
        {
            // Create a datetime format object
            DateTimeFormatInfo dateFormat = new CultureInfo("en-US").DateTimeFormat;

            try
            {
                taPMTransactionInsert PurchInvoice = new taPMTransactionInsert();

                PurchInvoice.BACHNUMB   = "SAVE";
                PurchInvoice.VENDORID   = "ACETRAVE0001";
                PurchInvoice.DOCAMNT    = 500m;
                PurchInvoice.DOCNUMBR   = "15444445";
                PurchInvoice.DOCTYPE    = 1;
                PurchInvoice.VCHNUMWK   = "8914985";
                PurchInvoice.DOCDATE    = "01/06/2017"; //System.DateTime.Today.ToString("MM/dd/yyyy", dateFormat);
                PurchInvoice.PRCHAMNT   = 500m;
                PurchInvoice.MSCCHAMT   = 0;
                PurchInvoice.TAXAMNT    = 0;
                PurchInvoice.FRTAMNT    = 0;
                PurchInvoice.TRDISAMT   = 0;
                PurchInvoice.CHRGAMNT   = 500m;
                PurchInvoice.CREATEDIST = 1;

                //  PurchInvoice.DISAMTAV = 0;


                taPMDistribution_ItemsTaPMDistribution[] LineItems = new taPMDistribution_ItemsTaPMDistribution[2];


                taPMDistribution_ItemsTaPMDistribution invLines = new taPMDistribution_ItemsTaPMDistribution();

                invLines.DOCTYPE = 1;
                // invLines.ACTNUMST = "000-1410-00";
                invLines.DEBITAMT = 500m;
                invLines.DISTTYPE = 6;
                invLines.VCHRNMBR = PurchInvoice.VCHNUMWK;
                invLines.VENDORID = PurchInvoice.VENDORID;
                invLines.ACTINDX  = 10;

                LineItems[0] = invLines;

                invLines          = new taPMDistribution_ItemsTaPMDistribution();
                invLines.DOCTYPE  = 1;
                invLines.DISTTYPE = 2;
                invLines.VCHRNMBR = PurchInvoice.VCHNUMWK;
                invLines.VENDORID = PurchInvoice.VENDORID;
                invLines.CRDTAMNT = PurchInvoice.DOCAMNT;
                invLines.ACTINDX  = 35;
                //Reset the lines


                LineItems[1] = invLines;

                PMTransactionType crInvoice = new PMTransactionType();

                crInvoice.taPMTransactionInsert  = PurchInvoice;
                crInvoice.taPMDistribution_Items = LineItems;

                PMTransactionType[] myPMTrancationType = { crInvoice };

                eConnectType eConnect = new eConnectType();
                eConnect.PMTransactionType = myPMTrancationType;
                FileStream    fs     = new FileStream(filename, FileMode.Create);
                XmlTextWriter writer = new XmlTextWriter(fs, new UTF8Encoding());

                // Serialize the eConnect document object to the file using the XmlTextWriter.
                XmlSerializer serializer = new XmlSerializer(eConnect.GetType());
                serializer.Serialize(writer, eConnect);
                writer.Close();
            }
            //If an eConnect exception occurs, notify the user
            catch (eConnectException ex)
            {
                Console.Write(ex.ToString());
            }
        }