public override void insert(NpgsqlConnection con)
        {
            using (PetLineContext db = new PetLineContext())
            {
                var settings = (from item in db.impostazioni
                                select item).First();

                using (var client = new WebClient())
                {
                    var values = new NameValueCollection();


                    string ordine = JsonConvert.SerializeObject(this);

                    values["op"]          = "insert_order";
                    values["ordine"]      = ordine;
                    values["private_key"] = settings.private_key;

                    try
                    {
                        var response       = client.UploadValues(settings.jerp_url + "/zwebServ/sync.jsp", values);
                        var responseString = Encoding.Default.GetString(response);
                    }
                    catch (WebException e)
                    {
                        var messaggio = new StreamReader(e.Response.GetResponseStream()).ReadToEnd();
                        throw new Exception(messaggio);
                    }
                }
            }
        }
예제 #2
0
        internal void select(NpgsqlConnection con, string id_cliente = "", string query = "")
        {
            using (PetLineContext db = new PetLineContext())
            {
                using (var cmd = new NpgsqlCommand())
                {
                    cmd.Connection  = con;
                    cmd.CommandText = "SELECT *, \r\n" +
                                      "   (select sum(stock_libero) from mg_stock_magazzino where id_divisione = '1' and id_codice_art = ma_articoli_soc.id_codice_art) as giacenza \r\n" +
                                      "from ma_articoli_soc \r\n" +
                                      "where (upper(id_codice_art) like (@query) or upper(descrizione)  like (@query) ) \r\n" +
                                      "order by id_codice_art asc \r\n" +
                                      "limit 5";

                    cmd.Parameters.AddWithValue("query", query.ToUpper() + "%");
                    cmd.ExecuteNonQuery();

                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Articolo r = new Articolo();
                            r.id_codice_art = reader["id_codice_art"].ToString();
                            r.descrizione   = reader["descrizione"].ToString();
                            r.id_iva        = reader["id_iva"].ToString();
                            r.peso_lordo    = Convert.ToDecimal(reader["peso_lordo"]);
                            r.giacenza      = !string.IsNullOrEmpty(reader["giacenza"].ToString()) ?  Convert.ToDecimal(reader["giacenza"]) : 0;

                            CodiceIva codiceIva = db.codiceIva.FirstOrDefault(x => x.id_iva == r.id_iva);
                            r.aliquota = codiceIva.aliquota;

                            r.name = r.id_codice_art + " - " + r.descrizione;

                            rs.Add(r);
                        }
                    }
                }

                foreach (var r in rs)
                {
                    RecordListinoModel listinoCliente = new RecordListinoModel();
                    listinoCliente.id_codice_art = r.id_codice_art;
                    listinoCliente.leggiPrezziCliente(con, id_cliente);

                    RecordListinoModel listinoArticolo = new RecordListinoModel();
                    listinoArticolo.id_codice_art = r.id_codice_art;
                    listinoArticolo.leggiPrezzi(con);

                    r.prezzo_acquisto = listinoArticolo.prezzo_acquisto;
                    r.prezzo_vendita  = listinoCliente.prezzo_vendita > 0 ? listinoCliente.prezzo_vendita : listinoArticolo.prezzo_vendita;
                    r.sconto_1        = listinoCliente.sconto_1 > 0 ? listinoCliente.sconto_1 : listinoArticolo.sconto_1;
                    r.sconto_2        = listinoCliente.sconto_2 > 0 ? listinoCliente.sconto_2 : listinoArticolo.sconto_2;
                    r.sconto_3        = listinoCliente.sconto_3 > 0 ? listinoCliente.sconto_3 : listinoArticolo.sconto_3;
                    r.sconto_agente   = 0;
                    r.leggiUltimoOrdine(con);
                }
            }
        }
 private decimal getValoreCond(PetLineContext db, String id_cond_prezzo, String id_codice_art)
 {
     try
     {
         da_listini_articolo listino = db.da_listini_articolo
                                       .FirstOrDefault(x => x.id_codice_art == id_codice_art && x.id_cond_prezzo == id_cond_prezzo);
         return(listino.val_condizione);
     }
     catch {
         return(0);
     }
 }
 private decimal getValoreScontoCliente(PetLineContext db, String id_cond_prezzo, String id_codice_art, String id_cliente)
 {
     try
     {
         da_sconti_cliente_articolo sconto = db.da_sconti_cliente_articolo
                                             .FirstOrDefault(x => x.id_codice_art == id_codice_art && x.id_cond_prezzo == id_cond_prezzo && x.id_cliente == id_cliente);
         return(sconto.val_condizione);
     }
     catch
     {
         return(0);
     }
 }
        public override void delete(NpgsqlConnection con)
        {
            using (PetLineContext db = new PetLineContext()) {
                var settings = (from item in db.impostazioni
                                select item).First();

                using (var client = new WebClient())
                {
                    var values = new NameValueCollection();
                    values["op"]          = "delete_order";
                    values["esercizio"]   = esercizio.ToString();
                    values["id_ordine"]   = id_ordine;
                    values["private_key"] = settings.private_key;

                    var response = client.UploadValues(settings.jerp_url + "/zwebServ/sync.jsp", values);

                    var responseString = Encoding.Default.GetString(response);
                }
            }
        }
        public override void update(NpgsqlConnection con)
        {
            using (PetLineContext db = new PetLineContext())
            {
                var settings = (from item in db.impostazioni
                                select item).First();

                using (var client = new WebClient())
                {
                    var values = new NameValueCollection();

                    string ordine = JsonConvert.SerializeObject(this);

                    values["op"]          = "update_order";
                    values["ordine"]      = ordine;
                    values["private_key"] = settings.private_key;

                    var response = client.UploadValues(settings.jerp_url + "/zwebServ/sync.jsp", values);

                    var responseString = Encoding.Default.GetString(response);
                }
            }
        }
        public void select()
        {
            using (PetLineContext db = new PetLineContext())
            {
                var query = from art in db.ma_articoli_soc
                            where art.id_codice_art.Equals(this.id_codice_art_rif)
                            select art;
                var articoli_soc = query.FirstOrDefault <ma_articoli_soc>();

                descrizione = articoli_soc.descrizione;
                id_um       = articoli_soc.id_um;
                peso_lordo  = articoli_soc.peso_lordo;

                prezzo_acquisto = getValoreCond(db, "AC01", this.id_codice_art_rif);
                prezzo_vendita  = getValoreCond(db, "VA01", this.id_codice_art_rif);

                sconto_1 = getValoreSconto(db, "SC01", this.id_codice_art_rif);
                sconto_2 = getValoreSconto(db, "SC02", this.id_codice_art_rif);
                sconto_3 = getValoreSconto(db, "SC03", this.id_codice_art_rif);

                string sql = @"select va_clienti.* from (select distinct * from (
                    select id_cliente from da_sconti_cliente_articolo where id_codice_art = @id_codice_art_rif
                    union
                    select id_cliente from da_listini_cliente where id_codice_art = @id_codice_art_rif) as tab
                    ) as elenco_clienti
                    inner join va_clienti
                    on elenco_clienti.id_cliente = va_clienti.id_cliente";

                condizioni_cliente = db.CondizioneCliente.SqlQuery(sql, new NpgsqlParameter("id_codice_art_rif", this.id_codice_art_rif)).ToList();

                foreach (var item in condizioni_cliente)
                {
                    item.prezzo_acquisto = getValoreCondCliente(db, "AC01", this.id_codice_art_rif, item.id_cliente);
                    item.prezzo_vendita  = getValoreCondCliente(db, "VA01", this.id_codice_art_rif, item.id_cliente);

                    item.sconto_1 = getValoreScontoCliente(db, "SC01", this.id_codice_art_rif, item.id_cliente);
                    item.sconto_2 = getValoreScontoCliente(db, "SC02", this.id_codice_art_rif, item.id_cliente);
                    item.sconto_3 = getValoreScontoCliente(db, "SC03", this.id_codice_art_rif, item.id_cliente);
                }

                //Leggi ultimo codice articolo
                using (var cmd = new NpgsqlCommand())
                {
                    cmd.Connection = (NpgsqlConnection)db.Database.Connection;
                    cmd.Connection.Open();
                    //cmd.CommandText = "select max(cast(id_codice_art as integer)) as id_codice_art from ma_articoli_soc where id_codice_art ~ E'^\\d+$' \r\n";
                    cmd.CommandText = "select * from mb_range_int_stato where id_range_int = 'ARTICOLI' \r\n";
                    cmd.ExecuteNonQuery();
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            id_codice_art = "" + Convert.ToInt32(reader["ultimo_valore"]);
                        }
                    }

                    cmd.Connection.Close();
                }


                using (var cmd = new NpgsqlCommand())
                {
                    cmd.Connection = (NpgsqlConnection)db.Database.Connection;
                    cmd.Connection.Open();
                    cmd.CommandText = "update mb_range_int_stato set ultimo_valore = ultimo_valore + 1 where id_range_int = 'ARTICOLI' \r\n";
                    cmd.ExecuteNonQuery();
                    cmd.Connection.Close();
                }

                try
                {
                    id_codice_art = "" + int.Parse(id_codice_art) + 1;
                }
                catch
                {
                    id_codice_art = "1";
                }


                //Leggi codice a barre
                using (var cmd = new NpgsqlCommand())
                {
                    cmd.Connection = (NpgsqlConnection)db.Database.Connection;
                    cmd.Connection.Open();
                    cmd.CommandText = "select codice_ean from ma_articoli_ean where id_societa = '1' and id_codice_art = @id_codice_art \r\n";
                    cmd.Parameters.AddWithValue("id_codice_art", id_codice_art_rif);
                    cmd.ExecuteNonQuery();

                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            codice_ean = reader["codice_ean"].ToString();
                        }
                    }

                    cmd.Connection.Close();
                }
            }
        }