Ejemplo n.º 1
0
        public void DefaultValues()
        {
            var x = new Models.PriceList();

            Assert.AreEqual(PriceListType.Sell, x.Type);
            Assert.AreEqual(PriceListPricesAreSet.Manually, x.PricesAreSet);
            Assert.IsTrue(x.IsVatExcluded);
            Assert.AreEqual(CurrencyHelpers.Currencies["EUR"].Code, x.CurrencyCode);
        }
        void thread()
        {
            DataTable Transactions = getAllPricesLevels();
            string    prevDoc      = "";
            int       total        = Transactions.Rows.Count;


            // esrcibo en el nowin porque van para premiumsoft
            foreach (DataRow row in Transactions.Rows)
            {
                if (prevDoc != row["PRCLEVEL"].ToString().Trim())
                {
                    DataTable TransactionDetail = getPriceLeveData(row["PRCLEVEL"].ToString().Trim());
                    string    ADJUST            = row["PRCLEVEL"].ToString().Trim();

                    string FileName = "GP_OFER_{0}.xml";

                    IEvent e = new InfoEvent("", "", "Iniciando la creación del archivo XML '" + String.Format(FileName, ADJUST) + "'.");
                    e.Publish();
                    // xml //
                    XmlDocument doc = new XmlDocument();

                    XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
                    XmlElement     root           = doc.DocumentElement;
                    doc.InsertBefore(xmlDeclaration, root);

                    /* Lines */
                    XmlElement Lines = doc.CreateElement(string.Empty, "raiz", string.Empty);
                    /* Lines */

                    Models.Oferts offerts = new Models.Oferts();

                    foreach (DataRow det in TransactionDetail.Rows)
                    {
                        Models.PriceList pl = new Models.PriceList();


                        string DOCNUMBR = det["PRCLEVEL"].ToString().Trim();
                        //string USERID = "UNKNOWN";

                        string DOCDATE  = DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day;
                        string TIME     = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":00";
                        string ITEMNMBR = det["ITEMNMBR"].ToString().Trim();

                        try
                        {
                            XmlElement Item = doc.CreateElement(string.Empty, "lista_de_precio", string.Empty);

                            /* document */
                            //XmlElement document = doc.CreateElement(string.Empty, "codigoalmacen", string.Empty);
                            pl.Almacen = det["PRCLEVEL"].ToString().Trim(); // XmlText document_text = doc.CreateTextNode(det["PRCLEVEL"].ToString().Trim());
                            //document.AppendChild(document_text);
                            //Item.AppendChild(document);
                            /* document */

                            /* realizador */
                            //XmlElement realizador = doc.CreateElement(string.Empty, "codigo", string.Empty);
                            pl.Codigo = det["ITEMNMBR"].ToString().Trim(); //XmlText realizador_text = doc.CreateTextNode(det["ITEMNMBR"].ToString().Trim());

                            //realizador.AppendChild(realizador_text);
                            //Item.AppendChild(realizador);
                            /* realizador */

                            /* motivo */
                            //XmlElement motivo = doc.CreateElement(string.Empty, "nombre", string.Empty);
                            pl.Descripcion = det["ITEMDESC"].ToString().Trim();//XmlText motivo_text = doc.CreateTextNode(det["ITEMDESC"].ToString().Trim());

                            //motivo.AppendChild(motivo_text);
                            //Item.AppendChild(motivo);
                            /* motivo */

                            /* fecha */
                            //XmlElement fecha = doc.CreateElement(string.Empty, "nombrelista", string.Empty);
                            pl.NombreLista = det["PRCLEVEL"].ToString().Trim();// XmlText fecha_text = doc.CreateTextNode(det["PRCLEVEL"].ToString().Trim());

                            //fecha.AppendChild(fecha_text);
                            //Item.AppendChild(fecha);
                            /* fecha */


                            //XmlElement element10 = doc.CreateElement(string.Empty, "unidad", string.Empty);
                            pl.UofM = det["UOFM"].ToString().Trim();// XmlText text8 = doc.CreateTextNode(det["UOFM"].ToString().Trim());
                            //element10.AppendChild(text8);
                            //Item.AppendChild(element10);

                            //XmlElement element9 = doc.CreateElement(string.Empty, "cantidad", string.Empty);
                            pl.Cantidad = det["QTYBSUOM"].ToString().Trim().Replace(",", "."); // XmlText text7 = doc.CreateTextNode(det["QTYBSUOM"].ToString().Trim().Replace(",", "."));
                                                                                               // element9.AppendChild(text7);
                                                                                               //Item.AppendChild(element9);

                            /* precio */
                            //XmlElement precio = doc.CreateElement(string.Empty, "precio_neto", string.Empty);
                            pl.PrecioNeto = (decimal)det["PRICE"]; // XmlText precio_text = doc.CreateTextNode(det["PRICE"].ToString().Trim().Replace(",", "."));
                            //precio.AppendChild(precio_text);
                            //Item.AppendChild(precio);
                            /* precio */

                            /* cost */
                            //XmlElement cost = doc.CreateElement(string.Empty, "precio_con_itbms", string.Empty);
                            pl.PrecioConITBMS = (decimal)det["PRICEWITMBS"];// XmlText cost_text = doc.CreateTextNode(det["PRICEWITMBS"].ToString().Trim().Replace(",", "."));
                            //cost.AppendChild(cost_text);
                            //Item.AppendChild(cost);
                            /* costo */

                            /* cost */
                            //XmlElement cost2 = doc.CreateElement(string.Empty, "costo", string.Empty);
                            pl.Costo = (decimal)det["CURRCOST"]; // XmlText cost_text2 = doc.CreateTextNode(det["CURRCOST"].ToString().Trim().Replace(",", "."));
                            //cost2.AppendChild(cost_text2);
                            //Item.AppendChild(cost2);
                            /* costo */

                            //XmlElement element7 = doc.CreateElement(string.Empty, "porcentaje_itbms", string.Empty);
                            pl.PrecioITBMS = (decimal)det["ITMBSPCT"];// XmlText text5 = doc.CreateTextNode(det["ITMBSPCT"].ToString().Trim().Replace(",", "."));
                            //element7.AppendChild(text5);
                            //Item.AppendChild(element7);

                            //XmlElement element8 = doc.CreateElement(string.Empty, "tipo", string.Empty);
                            pl.Tipo = (int)Convert.ToInt32(det["ITEMTYPE"]);// XmlText text6 = doc.CreateTextNode(det["ITEMTYPE"].ToString().Trim());
                            //element8.AppendChild(text6);
                            //Item.AppendChild(element8);



                            offerts.Add(pl);
                            //Lines.AppendChild(Item);
                        }
                        catch (Exception ex)
                        {
                            IEvent err = new ErrorEvent("", "", "No pudo crear el archivo xml correctamente. Mensaje: " + ex.Message);
                            err.Publish();
                        }
                    }
                    doc.AppendChild(Lines);

                    if (this.NowPathIn.ToCharArray().Last() == '/' || this.NowPathIn.ToCharArray().Last() == '\\')
                    {
                        if (!System.IO.File.Exists(this.mNowPathOut + string.Format(FileName, ADJUST)))
                        {
                            Models.Oferts.SaveAs(this.mNowPathOut + string.Format(FileName, ADJUST), offerts);// doc.Save(this.mNowPathOut + string.Format(FileName, ADJUST));
                        }
                    }
                    else
                    {
                        if (!System.IO.File.Exists(this.mNowPathOut + "/" + string.Format(FileName, ADJUST)))
                        {
                            Models.Oferts.SaveAs(this.mNowPathOut + "/" + string.Format(FileName, ADJUST), offerts);//doc.Save(this.mNowPathOut + "/" + string.Format(FileName, ADJUST));
                        }
                    }
                    total--;

                    ObserverManager.Instance.addSubject(new ProgressSubject(total, Transactions.Rows.Count - total));

                    IEvent e2 = new InfoEvent("", "", "El archivo '" + String.Format(FileName, ADJUST) + "'. fue creado correctamente");
                    e2.Publish();
                }

                prevDoc = row["PRCLEVEL"].ToString().Trim();
            }
            ObserverManager.Instance.addSubject(new ProgressSubject(0, 0));
        }